Repository navigation
feat(studio): complete chat approvals, plan review, and Escape flow - #1975
Merged
kantord merged 17 commits intoOct 7, 2026
Merged
Conversation
Signed-off-by: Samuele Verzi <samu@stacklok.com> Co-Authored-By: Codex <codex@openai.com>
Pin SDK 0.4.0, route plan verdicts through its exact run and ask control, and follow durable activity before reporting execution or uncertainty. Signed-off-by: Samuele Verzi <samu@stacklok.com> Co-Authored-By: Codex <codex@openai.com>
Capture session, run, and ask IDs from the permission delivery and reject stale cards before submission. Block duplicate clicks during acknowledgement. Signed-off-by: Samuele Verzi <samu@stacklok.com> Co-Authored-By: Codex <codex@openai.com>
Place ordinary asks by exact same-run call IDs in the main chat and side thread. Render bounded inert diffs with raw arguments, and bind verdicts to the captured run and ask. Keep ambiguous outcomes visible until activity resolves them. Signed-off-by: Samuele Verzi <samu@stacklok.com> Co-Authored-By: Codex <codex@openai.com>
Co-Authored-By: Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Co-Authored-By: OpenAI Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Co-Authored-By: OpenAI Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Exercise allow, deny, plan review, stale two-tab verdicts, and Escape through the offline browser harness. Reuse the published SDK and mock daemon for the stale control boundary, and run the browser gate after CI builds the daemon. Co-Authored-By: Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Co-Authored-By: OpenAI Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Co-Authored-By: OpenAI Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Restore the Chat options trigger after menu close and retain its session-scoped Escape ownership across the brief body-focus gap. Pin focus restoration and exact ask denial in the offline browser journey. Co-Authored-By: OpenAI Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Co-Authored-By: OpenAI Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Transfer the observed execution run and durable replay checkpoint to each chat surface's activity reader. Keep the previous reader aborted and preserve exact run controls while inventory catches up. Co-Authored-By: Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Drive actual Write and PresentPlan asks from an isolated mock-script daemon through browser verdicts, the Hono BFF, and published SDK 0.4.0. A second tab must receive an exact duplicate 409 while the ordinary run is still active. Co-Authored-By: Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
Co-Authored-By: Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
samuv
force-pushed
the
impl/studio-chat-approvals-review-escape-completion
branch
from
September 29, 2026 08:43
c6d5539 to
2bd9d10
Compare
Co-Authored-By: Codex <codex@openai.com> Signed-off-by: Samuele Verzi <samu@stacklok.com>
…etion Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
15 tasks
kantord
deleted the
impl/studio-chat-approvals-review-escape-completion
branch
October 7, 2026 08:56
4 of 14 tasks
Merged
2 tasks
This was referenced Oct 11, 2026
41 tasks done
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Update (2026-10-06, while Samu is on leave): I merged
origin/maininto this branch instead of rebasing, so the original history is preserved. There was one conflict:docs/acceptance/studio-chat-approvals-review-escape.mdstays deleted, because #2105 removed acceptance plans, ADRs, and the Plan / Interface process. References below to "Stage", #1888, and ADR 0366 are historical. The merged branch also picks up #2133 (Studio on Node 26, image smoke test, and Grype in thestudioCI job). Compared withmain, the PR now changesapps/, thestudioCI job (Playwright moves after the integration step), and the Studio user docs.Verified locally before pushing (Node 26 and pnpm 12.4.2 for Studio):
generated-check, and audit all pass. Tests: server 173, web 593, and integration 8. Playwright withmecated: 46.task docs,task site:build, the SDK suites, and actionlint with shellcheck all pass.Closes #1848
Relates to #1776
Stage and approved contract
Stage: Implementation. This completes the Studio approval, plan review, and Escape behavior in the merged Plan / Interface PR #1888, approved at merge commit
98dfad2e1bed66809f68b104c4f207df2d2b1dda. The exact daemon and SDK controls from merged #1909 are already onmain. The browser uses the published@stacklok-oss/mecatl-sdk@0.4.0(staged integritysha512-Ii03oT378bVhwntthEcteyKgoM8QCYL5XBprpEX/+GjNgBlTxCkU8byG54c7JkAOYeAoRl8dlKpQ4K7tP2VT9w==) with releasedmecatedv0.0.41.Interfaces match approved contract: Yes. No implementation deviation in this completion slice required another plan or ADR amendment. The earlier directing-human amendments to ADR 0366, protobuf fields, call correlation, and lease-loss handling were incorporated into #1888 and #1909 before their merges.
Behavior
callIdmatches a row in the same run. Unmatched child and older-server asks remain separate inline cards. Cards show scrubbed arguments and a bounded Edit/Write diff when parseable; malformed or missing arguments fail closed. Allow once, Always allow, and Deny retain the event's immutable session/run/ask tuple and reconcile uncertain submissions from activity.PresentPlanhas an inline plan card in main chat and side threads. It shows the plan, optional note, and raw arguments, with Approve & run, Auto-accept edits, and Iterate. The two approving controls require valid plan text. The BFF uses only the published SDK's exact run-and-ask plan control. After allow, Studio follows durable activity and reattaches transcript and controls to the observed execution run; a matching continuation failure or bounded uncertainty is reported honestly.Verification
task studio:checkpassed on the assembled candidate, including web/server tests, lint, typechecks, and generated client check.WriteandPresentPlanasks from a test-ownedmecated --mock-script; accepted browser verdicts and consumed-ask 409s traverse the real Hono BFF and published SDK. No live provider or external network is used. CI now runs the browser step after the daemon build.CGO_ENABLED=0 task docs,task site:build, andtask ac-trace-strictpassed. Strict tracing resolves all 13 Studio chat: inline approvals, plan review, and Escape behavior #1848 ACs. Native local docs/build encountered this macOS host's linker incompatibility; the CGO-free docs/build passed.Per the directing human's request, PR CI is the broad validation gate for repository-wide lint, tests, race checks, build, and the full Studio/browser flow. This PR is for review; it has not been merged or deployed.