Workspaces: add Living Answers and action forms#101899
Conversation
|
On |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Dependency graph guard clearedThis PR no longer has blocked dependency graph changes. A future dependency graph change requires a fresh
|
|
Codex review: found issues before merge. Reviewed July 13, 2026, 8:40 AM ET / 12:40 UTC. Summary PR surface: Source +399, Tests +151, Docs +19. Total +569 across 18 files. Reproducibility: yes. at source level, though not live-reproduced here: submit while disconnected or make Review metrics: 2 noteworthy metrics.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review findings
Review detailsBest possible solution: Keep the additive ephemeral-widget model, but ship action forms only after dispatch rejection is surfaced through the Control UI error/toast path with focused disconnected and Do we have a high-confidence way to reproduce the issue? Yes at source level, though not live-reproduced here: submit while disconnected or make Is this the best way to solve the issue? Not yet. The shared confirmation and rate-limit gate is the right ownership boundary, but swallowing dispatch rejection is not acceptable, and the bundled action-form direction still needs explicit sponsorship. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 265f79e60721. Label changesLabel justifications:
Evidence reviewedPR surface: Source +399, Tests +151, Docs +19. Total +569 across 18 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (12 earlier review cycles; latest 8 shown)
|
|
Minor robustness (downstream-extraction audit): the action-form submit does |
3ba4743 to
91d72db
Compare
4999efd to
87d6064
Compare
87d6064 to
b137a92
Compare
b137a92 to
b3ae66d
Compare
What Problem This Solves
Agents need a safe way to publish temporary answers into Workspaces and let operators explicitly pin useful results. Workspaces also needs a bounded action form that can send a declared prompt without creating an arbitrary execution surface. The legacy implementation targeted the removed dashboard stack.
Why This Change Was Made
This rebuild adds ephemeral widget expiry and explicit
ephemeral: nullpinning to current Workspaces, including transactional lazy TTL cleanup that rechecks cached documents. It also addsbuiltin:action-formwith bounded declared fields, single-pass interpolation, explicit confirmation, and a shared dispatch gate limited to one in-flight request and ten requests per minute. Dispatch uses the existingchat.sendpermission path withdeliver: false; it does not add eval, arbitrary RPC, or a new execution authority.User Impact
Agent-created Living Answers can expire automatically, display a Temporary badge, and be pinned by an operator. Action forms can collect bounded input and submit a confirmed prompt while remaining inside existing agent permissions and rate limits. Expired content is removed consistently even when a cached workspace document is involved.
Evidence
843e3c787806389cdaac884300e671fba658dab6during the final recovery pass; all three commits range-diff identically and keep concrete workspace binding helpers private.node_modulesstill lacks current main'sremenddependency; GitHub Actions remains the canonical clean-dependency gate.oxlint: clean;git diff --check: clean.