feat(sdk/fresh): type-safe desktop bindings over oRPC MessagePort#853
Conversation
|
[PHASE: PLAN] Plan & Design — READY FOR REVIEWG3 #842 research, plan, and the Design checkpoint are complete. No product implementation file exists, and the implementation hard stop remains active. Scope locked
Planning commits
ArtifactsBaseline evidence
Supervisor actionPlease run the separate-session PLAN-EVAL under the harness protocol and record HARD STOP: no implementation slice starts before the group Plan-Gate records |
IMPL — Slice 1 SDK transport — READY FOR TIER-A REVIEWScope: completed the locked SDK slice only: Commit: Gate evidence
D7 review barThe adapter gives oRPC a real platform Acceptance covered in this slice
The PR retains PAUSED: awaiting supervisor Tier-A slice-1 review. I have not dispatched an evaluator, merged, published, or closed the milestone. |
IMPL — Slice 2 Fresh Desktop runtime — READY FOR TIER-A REVIEWScope: completed the locked Fresh slice: Commit: Gate evidence
D11–D13 behavior
Acceptance coveredThe full Fresh task proves typed strings, byte-for-byte Post-slice reconciliation confirmed issue #842 and PR #853 are open/draft on milestone 13 with sole PAUSED: awaiting supervisor Tier-A slice-2 review. No evaluator was dispatched; no merge, release, or milestone-close action was taken. |
[PHASE: IMPLEMENTATION] IMPLEMENTATION COMPLETE — READY FOR TIER-A S3 REVIEW / SUPERVISOR IMPL-EVALS3 scopeFinal consumer/docs/JSR closeout is complete at
Final gate evidence
Acceptance and closing-keyword decisionThe PR retains
The packaged native desktop deploy-E2E tracked by #457 remains open and unchecked. It is a separate deployment gate, not an acceptance checkbox in #842; this PR does not claim or mutate that gate. HandoffThe PR is now ready for review with sole status No evaluator was self-dispatched. No merge, release publish, tag, canary/stable cut, or milestone closure was performed. |
…n-off Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
Summary
Implement issue #842: a type-safe Deno Desktop bind-channel adapter that presents the structural MessagePort surface shipped oRPC expects, reuses NetScript's existing service contracts across the window boundary, and remains inert outside Desktop.
Closes #842
Part of #840
Closing-keyword decision:
Closes #842is retained. The live #842 issue has two acceptance boxes, and this PR proves both: (1) typed round-trip with native/procedure error shape,Uint8Array, and per-window isolation; (2) browser/Aspire no-op parity plus clean SDK/Fresh JSR surfaces. Issue #457's packaged desktop deploy-E2E remains open and unchecked; it is a separate deployment gate and is not an acceptance box in #842.Scope
@netscript/sdk/desktop: isolated bind-channel client/server port shim, oRPCRPCLink, and typedServiceClient<TContract>@netscript/fresh/desktop: Desktop-gatedRPCHandler.upgrade(port)and per-window bind/unbind lifecycleUint8Array, native/procedure error mappingPrimary archetype: 4 — Public DSL / Builder, with adapter/runtime subtype gates and the frontend no-op overlay.
Harness
Run:
.llm/runs/beta11-cli--orchestrator/slices/g3-842-bindings/Definition of Done
bindings.d.tsname,message, andstackUint8Arraycrosses the SDK shim and Fresh/oRPC procedure boundary byte-for-bytequality:scan, focused/rootarch:check, specifier guard, and release text-import preflight passFinal validation
Final commit:
007f2be299b482e682888cd85858be3151f67befexperimental_transfer; no published text/JSON import attributesDrift / debt
The feature branch was synchronized to integration
e6e1be08after G2 landed. Existing SDK/Fresh documentation and doctrine warnings remain precisely bounded in the run artifacts. The new desktop entrypoints contribute zero doc findings and introduce no new architecture debt.