feat(harness): launch read-only builder planning sessions - #787
Conversation
Closes: SAP-3074
…iler' into conductor/e4-sap-3074-planning-fanout
|
Holding for the final dependency head before reopening this stacked PR. |
Review — PR #787 (
|
…iler' into conductor/e4-sap-3074-planning-fanout
Closes: SAP-3074
|
Resolved in Hosted review findings:
The security/lifecycle remediation also covers builder-owned direct proposal successors, idempotent replay before mutable freshness checks, in-transaction source/ref validation, strict duplicate/opaque-ID parsing, side-effect-free project preview, durable spawn/kickoff CAS leases, stale-session mutation denial, exact Claude tool allow-listing, trusted same-ID REST resume, proactive targeted staleness, and visible lifecycle/additional-session behavior. Exact-head evidence: 366 focused tests, 23 Playwright tests, 3,456 full unit tests, 10 performance tests, plus typecheck, lint, production build, formatting, and diff checks all pass. The stock-research browser assertion still proves the authorized coding-agent follow-up updates the live map with its attribution. |
Follow-up review — delta since
|
Closes: SAP-3074
|
Resolved in Hosted follow-up findings:
The same follow-up closes the independent lifecycle/integrity audit: proposal receipt replay is checked after basic authenticated scope but before mutable freshness; changed request-ID payloads conflict deterministically; opaque IDs and unsafe ordinals fail at the request boundary; every binding mutation is fenced by immutable context plus operation-specific session/claim epoch; independent registries cannot infer global session death from a local miss; lost attach/resume races stop only the invocation-owned orphan; kickoff acknowledgement cannot revive a replacement context; and result status is consistent with owned direct-successor provenance across compatible later descendants. Claude's planning-readonly minimum is now 2.1.248 with boundary coverage. Exact final-tree evidence:
The stock-research browser flow retains its live-map attribution assertion and now also covers trusted same-ID secondary resume. |
|
/review |
Follow-up review — delta since
|
Closes: SAP-3074
|
Resolved in This follow-up closes the complete seven-finding review set:
Deterministic regressions force the old-reconcile → replacement → old-projection ordering, winner-create → loser-open → winner-attach ordering, early-result ordering, post-submission delayed callbacks, and stale-reconcile during kickoff completion. Exact final-tree evidence:
The first browser attempt encountered the known strict-locator flake when two valid running-session dots were present; the isolated case and the complete 23-case rerun both passed without code changes. |
|
/review |
Follow-up review — delta since
|
Closes: SAP-3074
|
/review |
|
Resolved in This append-only follow-up closes the confirmed projection and lifecycle findings:
Exact final-tree evidence:
The branch remains stacked on #786 and this PR remains open and unmerged. |
Follow-up review — delta since
|
Closes: SAP-3074
|
Follow-up to the hosted review comment, resolved in
Verification on the exact committed tree:
The PR remains open and unmerged. |
|
/review |
Follow-up review — delta since
|
Closes: SAP-3074
|
Follow-up to the hosted review comment, resolved in test-only commit
Verification on the exact committed tree:
The PR remains open and unmerged. |
|
/review |
Follow-up review — delta since
|
|
Exact head |
|
/review |
Follow-up review — delta since
|
Stamp server-accepted queued or raw planner input and require a distinct token before opening a pending fan-out consent. Drop prerelease consent records that cannot prove the turn boundary and keep ordinary sessions outside the planner-only path. Refs: SAP-3074
|
Follow-up to the hosted review comment, resolved in
Verification on the exact committed tree:
The PR remains open and unmerged. |
|
/review |
Follow-up review — delta since
|
Retain each accepted input's original boundary time so queued messages created before preparation cannot satisfy consent. Count only non-empty raw conversation lines, allow side-effect-free preparation without an earlier input, and describe the planner-attested semantic boundary honestly. Refs: SAP-3074
|
Follow-up to the hosted review comment, resolved in
Verification on the exact committed tree:
The PR remains open and unmerged. |
|
/review |
1 similar comment
|
/review |
Follow-up review — delta since
|
Prevent delayed pre-consent queue delivery from replacing a newer raw reply receipt, validate queued timestamps, and avoid buffering multiline paste separators. Refs: SAP-3074
|
Follow-up to the approved hosted review, with both non-blocking findings resolved in
Verification on the exact committed tree:
The PR remains open and unmerged. |
|
/review |
Follow-up review — delta since
|
Assert restart-time accepted-ledger repair preserves a newer consent receipt, and align the paste parser comment with its bounded separator behavior. Refs: SAP-3074
|
Follow-up to the approved hosted review, with both remaining nits resolved in test/documentation-only commit
Exact-head verification for this delta: planner-greeting + SessionManager, 2 files / 160 tests passed; lint, core/web/public-API typecheck, and The PR remains open and unmerged. |
Summary
planningEligible, the planner prepares the top-level session set, summarizes every agent mission and exact brief version, asks for explicit conversational consent, and stops for the replyplanning-readonly; implementation and deployment remain behind a separate execution gateConsent and Studio UX
planningEligible=true.build_plan_prepare_planning_sessionswith that exact source, plan, and complete active assignment set.user_reply_required; the planner must stop and wait.build_plan_open_planning_sessionswith the unchanged prepared scope anduser-confirmedattestation.The existing project-wide tab strip remains the session UX. Planning tabs visibly carry their read-only planning state. This epic does not authorize implementation or deployment.
Safety evidence
map-plannersession receives the prepare/open tools; builder and manual sessions cannot discover or call them404Verification
Depends on #786
Closes: SAP-3074