refactor(channels): separate status output from snapshot input#102272
refactor(channels): separate status output from snapshot input#102272RomneyDa wants to merge 8 commits into
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 10, 2026, 5:50 AM ET / 09:50 UTC. Summary Reproducibility: yes. at source level: current main uses one permissive Review metrics: 1 noteworthy metric.
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:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Rebase the focused contract split onto current main, retain a documented additive SDK migration window, and land only after exact-head protocol, Plugin SDK, status, and UI validation confirms that the narrowed output preserves intended operator diagnostics. Do we have a high-confidence way to reproduce the issue? Yes at source level: current main uses one permissive Is this the best way to solve the issue? Yes, the protocol-owned output plus permissive input split is the narrowest maintainable architecture; the unresolved parts are the shipped SDK migration policy and conflict-free exact-head proof. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1f3ea6faaab0. Label changesLabel justifications:
Evidence reviewedWhat 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 (3 earlier review cycles) |
4a2af8f to
dd5acf1
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
dd5acf1 to
4e69848
Compare
4e69848 to
83eb7cc
Compare
83eb7cc to
0ef68b0
Compare
|
reworking this to make it non-breaking |
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: refactor(channels): separate status output from snapshot input This is item 1/1 in the current shard. Shard 0/1. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
Related: #102258
What Problem This Solves
Resolves a problem where channel status data used one public snapshot type for two different trust boundaries: plugin/runtime contributions could carry channel-specific or credential-shaped fields, while Gateway and Control UI consumers expected a credential-free status response. This made the public status contract permissive and left the UI maintaining a separate handwritten mirror.
Why This Change Was Made
This change defines the Gateway protocol schema as the canonical closed
ChannelAccountStatusoutput, projects plugin contributions through an explicit redaction boundary, and introducesChannelAccountSnapshotInputfor permissive plugin/runtime input. The shippedChannelAccountSnapshotname remains as a deprecated alias for one migration window, and all bundled callers plus shipped plugin barrels are migrated or preserved additively.The final refactor is net-negative against current
main: 501 additions and 502 deletions. It removes the duplicated UI/core type surface and redundant test/documentation scaffolding rather than adding a parallel status path.User Impact
Operators and UI clients receive a consistent, credential-free channel status shape. Plugin developers can migrate input-producing code to
ChannelAccountSnapshotInputand output-consuming code toChannelAccountStatuswithout an immediate breaking change, because the deprecated alias remains exported until a future major cleanup.Evidence
dd5acf11fab38342756cadd49f2f8296ac68e6b6main: 501 additions, 502 deletions, net-1blacksmith-testbox, leasetbx_01kx4wgfy78t8yc2kedmczgzdt(violet-hermit)packages/gateway-protocol/src/channels.schema.test.tssrc/channels/account-snapshot-fields.test.tssrc/plugins/contracts/plugin-sdk-runtime-api-guardrails.test.tssrc/plugins/contracts/plugin-sdk-subpaths.test.tstest/scripts/plugin-sdk-surface-report.test.tspnpm check:test-types— passedpnpm plugin-sdk:check-exports— passedpnpm plugin-sdk:api:check— passedpnpm plugin-sdk:surface:check— passedpnpm docs:list— passedoxfmt --check— passed on Testboxgit diff --check— passedpatch is correct, confidence0.78)AI-Assisted Development
This PR was developed with Codex assistance. The agent transcript was not included at the user's request. All changes were reviewed through the repository's mandatory autoreview workflow and validated on Blacksmith Testbox as listed above.