cord 0.1.0-alpha.80 — lifecycle 3 痛点 + Caveat 37 production proof advance
Lifecycle 3 痛点 (all SHIPPED + tested)
- Subprocess kill 收敛 (Caveat 28 + 31 + 35): setsid pre_exec + ChildHandle pgid + killpg→grandchild + SIGKILL escalation [29s, 45s) + R9 scope guard; 4 e2e tests PASS
- Daemon orphan port (Caveat 37 cause): atomic listener close on SIGTERM + launchd ExitTimeOut=60 + manual_recovery_hint; 2 e2e tests PASS
- cargo target lifecycle (Caveat 39):
cord-cli ship step 12 post_ship_cleanup w/ 3 safety guards (cargo lock check + active process check + path scope check)
Caveat 37 production proof PARTIAL PASS
- Mac alpha.79 → alpha.80 auto-upgrade RAN end-to-end on real Mac (PIN v2 + pending_upgrade_target written, SIGTERM old daemon, NEW daemon boot path verify_pending_restart_on_boot RAN, peerId preserved)
- 3-way invariant verify_failed because launchctl print parser assumed alpha.76/.77 design format; real macOS emits
arguments = { (not program arguments) + program = <path> one-liner
- Caveat 41 root-cause + parser fix in
1f07900; alpha.81 will be first sprint with natural ship gate #1 PASS
- Boundary override used per design §1.5 Caveat 37c escape (one more cycle)
Caveat 38 codesign
- install.js fail-loud fallback + /usr/bin/codesign absolute path + which fallback
- Auto-update flow on macOS still needs manual codesign post-upgrade (npm install -g bypasses install.js) — post-install hook trigger investigation alpha.81
3 machines alpha.80 (peerId preserved)
- Mac PID 4490 / Fosen PID 2414596 / HK PID 517581
- Cross-NAT: Mac → Fosen 1209ms via HK relay / Fosen → Mac 323ms
Install
npm install -g @fosenai/cord
Carry to alpha.81
- Caveat 41 production proof retry with parser fix → natural ship gate #1 PASS (no override)
- Caveat 43 alpha54 oversize fetch_reference decryption
- Caveat 42 alpha47/alpha39 pre-existing tests
- 4 remaining lifecycle axes (PeerStore reconnect / Cap registration / Session lifecycle / Identity rotation)