feat: tell users to wait out a full sandbox fleet #48
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/sandbox-capacity-remedy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds the recovery advice for review's new
sandbox-capacity-exhaustedfailure (j4k/review#216): wait for the review burst to drain, and ask the operator to check axsandbox capacity and leaked sandboxes if the failure repeats.A code the bundled
@j4k/reviewcan't name now keeps its(code "…")even when the wrapper has a remedy for it. Until the bump, the log readsexecution failed for an unrecognized reason (code "sandbox-capacity-exhausted") — wait for the review burst to drain; …. The README already sends readers to the remedy printed on that line, so it gains no new row.Merge after j4k/review#216.
Review
01M45QBS1WFBV7E2NAZFXYZ9ZD— headdd1ff4b30df32cc6b6fb707acc25c7f50216c3cbReview — j4k-oss/review-wrapper @
c01ba82f21Scope: diff against base tree
8869a4f97f96Status: dispatched — coverage complete (5/5 slots terminal)
Facts: current review-wide projection
Computed under:
Findings (1)
low —
formatExecutionRecoverycomment says an unnamed code "keeps its identity" instead of saying the code is appended01M45QF6WKVH09QZH5YYBX0602src/wrapper/remedies.ts(snippet)01M45QG80KSK8JREWE0XQ0PJQN· valid: The grounded comment ('a code it cannot name keeps its identity') uses a metaphor where the adjacent branch does something specific: per the reviewer's quoted body, a schema-rejected failure gets '(code "...")' appended because formatExecutionFailure prints only the generic 'unrecognized reason' text. The quoted test output shows that mechanism. The skill asks for verifiable language that leads with the action and its object. 'Keeps its identity' names neither the action (appending) nor the reason (the generic message drops the code), so a literal reader cannot tell why the safeParse branch exists. The proposed rewrite keeps both facts the original carries: the table can name codes the bundled schema lacks, and the code reaches the log line. It states them as the mechanism the next line implements and adds no unnecessary detail. No fact is lost. Low severity is appropriate.Other claims
01M45QFFJ581H4QV9XV9PBE9PAlow — README says "the bundled service package" without naming@j4k/review, the dependency an operator must bump to get a named messageCoverage
Coverage pass: 01M45QBS4YD5D84EXHVADD48MD
Accounting: complete
Slot health: healthy
@ -53,6 +53,8 @@ const executionRemedies: Record<string, string | undefined> = {"ask the operator to inspect the failed agent execution logs and correct the reported error","infrastructure-failure":"ask the operator to check sandbox provisioning, controller connectivity, and resource availability","sandbox-capacity-exhausted":"re-ask once the review burst drains; if it repeats, ask the operator to check axsandbox capacity and leaked sandboxes",medium — New sandbox capacity failure loses its identity in wrapper logs
lens
general-bug· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M45E6D8BE8DQE4SHMTDD4Z0Vof review01M45E1770KAFZ0NWDV0173NDAmedium — Sandbox capacity remedy tells readers to re-ask before the context-specific retry
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M45E99GYCSQMZ52BMKD944YFof review01M45E1770KAFZ0NWDV0173NDAFixed in
ef857457a7: formatExecutionRecovery now keeps(code "…")whenever the bundled @j4k/review cannot parse the code as a named ExecutionFailure, and appends the wrapper's remedy after it. With @j4k/review 2.8.0 the line readsexecution failed for an unrecognized reason (code "sandbox-capacity-exhausted") — wait for the review burst to drain; …; once the bump names the code, it readssandbox fleet at capacity — ….Fixed in
ef857457a7: the remedy is now "wait for the review burst to drain; if the failure repeats, ask the operator to check axsandbox capacity and leaked sandboxes", so failed triage keeps its single "click rerun" step and failed slots keep the single dispatch re-ask command.feat: suggest a re-ask when the sandbox fleet stays fullto feat: tell users to wait out a full sandbox fleetThe report-only high finding "The recovery table omits the new sandbox-capacity remedy" (claim
01M45E7Q298E33W5FFT48NACYT) is fixed inef857457a7: the README table now has asandbox fleet at capacityrow, and the unrecognized-reason row says to follow the remedy printed after the quoted code. I kept the table rather than replacing it with a pointer, because it predates this PR and replacing it is a separate docs change.@ -132,3 +129,8 @@| `agent execution failed` | Ask the operator to inspect the failed agent logs and correct the reported error. || `sandbox infrastructure failed` | Ask the operator to check sandbox provisioning, controller connectivity, and resources. || `execution failed for an unrecognized reason` | Copy the quoted code from `(code "…")` on that log line and ask the operator to look it up in the review service logs. || Message | Recovery || --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ || `provider session limit reached` | Wait for the session limit to reset or ask the operator to lift it. || `selected model at capacity` | Wait for the model to accept new work. || `agent execution failed` | Ask the operator to inspect the failed agent logs and correct the reported error. || `sandbox infrastructure failed` | Ask the operator to check sandbox provisioning, controller connectivity, and resources. || `sandbox fleet at capacity` | Wait for the review burst to drain; if the failure repeats, ask the operator to check axsandbox capacity and leaked sandboxes. || `execution failed for an unrecognized reason` | Follow the remedy printed after the quoted code; without one, copy the code from `(code "…")` and ask the operator to look it up in the review service logs. |high — Recovery table names a sandbox message the bundle never prints
lens
restated-sets· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M45FDNEQ7NQNMVDZEHVPWXZ7of review01M45F4VN1GX9MAASJVKX47KFWFixed in
269397a719: thesandbox fleet at capacityrow is gone. With the bundled @j4k/review 2.8.0 this failure printsexecution failed for an unrecognized reason (code "sandbox-capacity-exhausted")followed by the capacity remedy, which the unrecognized-reason row now covers ("Follow the remedy printed after the quoted code"). The named row belongs with the @j4k/review bump that makes the bundle print it. I kept the table itself; replacing it with a pointer is a separate docs change outside this PR.@ -132,3 +129,7 @@| `agent execution failed` | Ask the operator to inspect the failed agent logs and correct the reported error. || `sandbox infrastructure failed` | Ask the operator to check sandbox provisioning, controller connectivity, and resources. || `execution failed for an unrecognized reason` | Copy the quoted code from `(code "…")` on that log line and ask the operator to look it up in the review service logs. || Message | Recovery || --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ || `provider session limit reached` | Wait for the session limit to reset or ask the operator to lift it. || `selected model at capacity` | Wait for the model to accept new work. || `agent execution failed` | Ask the operator to inspect the failed agent logs and correct the reported error. || `sandbox infrastructure failed` | Ask the operator to check sandbox provisioning, controller connectivity, and resources. || `execution failed for an unrecognized reason` | Follow the remedy printed after the quoted code; without one, copy the code from `(code "…")` and ask the operator to look it up in the review service logs. |medium — Recovery table copies the bundled failure-message catalog
lens
restated-sets· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M45PKAEMBBNNKRD9F7R8FPMYof review01M45G6KCM3TQMNNYMYKD83TBCFixed in
dd1ff4b: rebased onto main, whose #34 already replaced the recovery table with a pointer to the remedy printed by formatExecutionRecovery; this branch no longer edits the table.269397a719dd1ff4b30d@ -62,3 +64,1 @@if (remedy !== undefined) {return `${formatExecutionFailure(failure)} — ${remedy}`;}// The bundled service package can lag this table; a code it cannot name keeps its identity.low —
formatExecutionRecoverycomment says an unnamed code "keeps its identity" instead of saying the code is appendedlens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M45QF6WKVH09QZH5YYBX0602of review01M45QBS1WFBV7E2NAZFXYZ9ZD