fix: cap implementation prompt size and runner timeout - #17
Conversation
|
Amended (OCL-K, Grok CONFIRMED): |
|
@coderabbitai full review |
|
|
Warning Review limit reached
Next review available in: 47 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Comment |
|
Codex review: needs real behavior proof before merge. Reviewed August 22, 2026, 10:27 PM ET / August 23, 2026, 02:27 UTC. ClawSweeper reviewWhat this changesThe branch adds load-time prompt and tool-text byte caps, rejects non-finite per-call timeouts, clamps recorded timeout metadata, updates runner-limit documentation, and adds focused cap tests. Regression provenancePossible regression — suspected (reviewed change). No predecessor PR is attributed. Merge readiness⛔ Blocked until real behavior proof is added - 14 items remain Keep this PR open. Against the exact merge result, current main still lacks the requested hardening, but the branch retains six actionable blockers from the prior review: incomplete cap parsing, uncapped direct/file handoffs, post-write rejection, no shared command-runner deadline, schema-invalid timeout values, and removed retry documentation. The visible evidence remains install/build/test output rather than a real configured runner run. Likely related people are Jhacarreiro, the current-main control-plane contributor, and Zauberio, a recent runner-path contributor. Priority: P2 Review scores
Verification
How this fits togetherThis plugin receives plans and validation feedback, persists them as durable handoffs, and launches a portable command or Octopus implementation runner through a process-group supervisor. The reviewed guards sit between tool input, durable artifacts, runner metadata, and process execution. flowchart LR
A[Plan or feedback input] --> B[Text and timeout checks]
B --> C[Durable handoff files]
B --> D[Runner request metadata]
D --> E[Process-group supervisor]
E --> F[Command or Octopus adapter]
F --> G[Run status and logs]
Decision needed
Why: Merged #32 documents and tests timeout delegation with a zero default, while this branch documents a positive default but does not change the source default or enforce the deadline for the command path; choosing the compatibility policy is maintainer intent, not a safe automated inference. Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Adopt one explicit timeout contract that preserves the existing delegated default unless maintainers intentionally opt into a bounded policy, enforce any bounded deadline at the shared process-group boundary for both adapters, validate every text ingress before reading or writing durable artifacts, restore supported configuration documentation, and attach redacted real-run traces. Do we have a high-confidence way to reproduce the issue? Yes for the remaining source-level review findings: the current head shows exact uncapped ingress, post-write rejection, metadata-only timeout, zero-default schema mismatch, and documentation regression paths. No live configured runner was executed in this read-only review. Is this the best way to solve the issue? No, not yet. The cap direction is useful, but the timeout ownership/default contract, complete ingress validation, schema-valid timeout handling, accurate documentation, and real configured-run proof still need alignment. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning max; reviewed against fc524ecbbd45. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles)
|
|
I'll start by reading the full request and the repo context so the reply addresses every review finding with verified evidence.I'll inspect the PR code and test names against the review findings so the reply only claims what the captured runs actually show.I'll pull the captured evidence, the PR head source, and a prior author-style reply so the comment stays accurate and consistent.Agreed on the remaining gaps — the captured suite is green, but it does not cover complete cap parsing, direct handoff text, pre-write prompt checks, or command-adapter timeout enforcement, and there is still no live-run artifact. I’ll repair those paths, add focused tests, attach after-fix proof, and keep the timeout as a shared control-plane deadline.
What I verified (captured at
|
Clamp per-call timeoutSeconds to DEVELOPMENT_CYCLE_MAX_RUNNER_TIMEOUT_SECONDS (24h, envCap floor 60s) and reject non-finite timeoutSeconds with timeout_not_finite. Reject prompts over DEVELOPMENT_CYCLE_MAX_PROMPT_BYTES (2 MiB, envCap floor 1 KiB) with prompt_too_large. Also cap tool text payloads (direction/plan/delivery/validation) via MAX_TOOL_TEXT_BYTES (2 MiB). Includes HEAD supervisor cleanup (spawn+terminateGroup) from origin/main fc2c52a. Rebased onto origin/main fc2c52a (was e19d248 on base 54a104).
e19d248 to
f656480
Compare
|
@clawsweeper re-review — sandboxed bwrap evidence refreshed for head Evidence: |
|
@clawsweeper re-review — head |
|
@clawsweeper re-review |
…lds on launch-failure return; main's contained-wiki path)
…roved-plans feat(plan): normalize approved implementation plans
…tion-handoff-vocabulary fix(plan): recognize handoff stop and output vocabulary
Summary
createImplementationRunnerSessionwroteparams.prompttoprompt.txtwith no size gate, andtimeoutSecondshad no upper bound.Change
DEVELOPMENT_CYCLE_MAX_PROMPT_BYTES(default 2 MiB) →{ ok:false, error:"prompt_too_large" }DEVELOPMENT_CYCLE_MAX_RUNNER_TIMEOUT_SECONDS(default 24h) clamps effective timeoutTest plan
npm run buildnpm test(jq baseline only on this host)Validation
d29586526715(contains current main; base-gate compliant)