feat(prx): TCP transport for keeperd on macOS → non-null l2LaunchDigest (#749)#752
Open
bdelanghe wants to merge 2 commits into
Open
feat(prx): TCP transport for keeperd on macOS → non-null l2LaunchDigest (#749)#752bdelanghe wants to merge 2 commits into
bdelanghe wants to merge 2 commits into
Conversation
Replace all direct zod schema object usages with the new explicit type + parse-function surface from @bounded-systems/machine-schema@0.3.0: - handoff/cli.ts: handoffTargetActor.safeParse → safeParseHandoffTargetActor; handoffTargetActor.options → HANDOFF_TARGET_ACTOR_VALUES (3 call sites) - handoff/store.ts: handoffEnvelope.parse → parseHandoffEnvelope (4 call sites) - derive/cli.ts: z.array(rawStateV1Schema) → z.array(z.unknown().transform(parseRawStateV1)) - machine/contracts/guards.ts: rawStateV1Schema.parse → parseRawStateV1 - machine/contracts/anchored-chain-bridge.ts: rawStateV1Schema → z.unknown().transform(parseRawStateV1) - pr-state/domain_state.ts: .shape.* → z.custom<T>(); rawStateV1Schema.parse → z.unknown().transform(parseRawStateV1) + parseRawStateV1 - machine/work_unit.ts: update brand comment (v0.3.0 uses unique-symbol brand, not zod BRAND — explicit `as WorkUnitId` casts remain correct) Dependency: @bounded-systems/machine-schema@^0.3.0 (published separately). CI is blocked until that package is available on JSR. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…LaunchDigest on Mac) (#749) virtiofs forwards file semantics but not Unix socket semantics: the keeperd.sock file appears on the macOS filesystem but connections from the Mac host fail with ENOENT. TCP tunnels around this — keeperd-room declares tcpPort: 9999, podman publishes -p 9999:9999 and passes --port 9999 as a CMD arg, and launchPod sets KEEPERD_HOST=127.0.0.1:9999 so door-kit's client connects via TCP instead of the Unix socket path. launchPod falls back to KEEPERD_SOCK (Unix) when tcpPort is absent, so the Linux production path is unchanged. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| export function defaultMachineSchemaMap(): Readonly<Record<string, z.ZodTypeAny>> { | ||
| return { | ||
| raw_state_v1: rawStateV1Schema, | ||
| raw_state_v1: z.unknown().transform(parseRawStateV1), |
| // (attest + store the L2; the daemon remembers it so the box's writes auto-link). | ||
| // Best-effort attest: a failure surfaces as null but never tears the pod down. | ||
| import { describe, test, expect } from "bun:test"; | ||
| import { describe, test, expect, afterEach } from "bun:test"; |
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.
Summary
keeperd.sockappears on the Mac filesystem butconnect()from the Mac host fails withENOENT: connect ENOENT /Users/bobby/.local/run/prx/doors/keeperd.sock.keeperd-roomdeclarestcpPort: 9999;renderPodmanRunadds-p 9999:9999and--port 9999CMD arg;launchPodsetsKEEPERD_HOST=127.0.0.1:9999so door-kit's client uses TCP. Linux path (notcpPort) unchanged — falls back toKEEPERD_SOCK.l2LaunchDigest: 686c6cfd008a541725dab07655a4bd878d9cc8edc563413d409f2efbb20cae79live on Mac.Checklist
test/room/podman.test.ts—--publish 9999:9999+--port 9999in CMD argstest/room/launch-pod.test.ts—KEEPERD_HOST=127.0.0.1:9999set during attest; env restored; Unix fallback path coveredlaunchPod(pod)→l2LaunchDigest: 686c6cfd...(non-null on Mac)keeperTcpPorthelper mirrorskeeperSocketPathpatterntcpPorton keeperd-room in production)Test plan
bun test test/room/podman.test.ts— 33 passbun test test/room/launch-pod.test.ts— 5 pass (3 new TCP-path tests)bun test test/room/podman-runtime.test.ts— 7 passlaunchPod(perRepoPod)live on Mac →l2LaunchDigestnon-null ✓🤖 Generated with Claude Code