Workspaces: add stream and computed bindings#101878
Conversation
|
On the |
|
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: needs real behavior proof before merge. Reviewed July 13, 2026, 8:37 AM ET / 12:37 UTC. Summary PR surface: Source +662, Tests +515, Docs +24. Total +1201 across 19 files. Reproducibility: not applicable. This PR adds new Workspaces capabilities rather than fixing a reproducible current-main bug. Source and tests establish the proposed behavior, but not an existing failure. Review metrics: 2 noteworthy metrics.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Keep the capability plugin-owned and narrowly allowlisted, preserve the broader command-binding issue or split it into a dedicated follow-up, use an owner-approved migration path, and land only after real Control UI plus existing-SQLite upgrade proof. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR adds new Workspaces capabilities rather than fixing a reproducible current-main bug. Source and tests establish the proposed behavior, but not an existing failure. Is this the best way to solve the issue? Unclear: the closed operation set, event allowlist, and explicit output selection are maintainable choices, but runtime migration ownership and closure of the broader command-binding issue need resolution before this is the best final shape. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 5cb47597424e. Label changesLabel justifications:
Evidence reviewedPR surface: Source +662, Tests +515, Docs +24. Total +1201 across 19 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 (15 earlier review cycles; latest 8 shown)
|
a2b18b4 to
d0c0f3c
Compare
d0c0f3c to
37010f4
Compare
d3e2554 to
46a23f9
Compare
46a23f9 to
a07c779
Compare
a07c779 to
68d4869
Compare
What Problem This Solves
Workspaces could read one-shot RPC, file, and static values, but could not express live socket-backed values or safe client-side derivations. The original #101878 implementation was tied to the superseded Dashboard stack and left its new kinds inaccessible or ambiguous on current authoring surfaces.
Why This Change Was Made
This rebuild ports only the binding-kind delta onto the Workspaces architecture landed by #104139. It adds allowlisted
streambindings, fixed-operationcomputedbindings, and an explicitoutputBindingso rendering never depends on object insertion order.The server returns the binding contract consumed by the UI, while the gateway seam has a real integration test to prevent drift. CLI and agent tools can author both kinds. Stream events are limited to channels visible to read-scoped clients (
presenceandsessions.changed); write-scoped workspace-change broadcasts are not advertised. Computed expressions use a closed operation switch and may reference only validated non-computed, non-stream sibling inputs.User Impact
evalor arbitrary code.Evidence
a03df5fd5898e24facd38c07d9d9e60a047f0111; the second commit is patch-equivalent and the first differs only by preserving current main's privateWorkspaceBindingErrorCodewhile retaining the stream/computed contracts.git diff --checkpassed.Closes #101150.