Adds a first-launch auto posture through permission_policy: the built-in policy builtin:auto, or launch_posture: auto in a custom policy, at rig or member level. Claude seats launch with --permission-mode auto; Codex and Pi have no auto mode and launch at the floor, and rig seat status says why. Restore and handover keep using the seat's current policy (pod-aware restore included); NativePermissionStore.apply() re-applies only an explicit per-seat selection, plus auto for Claude when the binding's own posture is auto. rig policy list and show include auto, the before-install view reports it per runtime, and the rig-spec policy table has a builtin:auto row.
Thanks to @shravansumanthanan. Requested in #611.
* ci: add installed baton scenario and regression control to PR tests
* ci: retain healthy return after the durability fault control
* Bind seeded failure to queue observation and propagate pack errors
* test: repair hosted fixture drift and bound temporary IPC
* ci: record a bounded self-process probe before package suites
* test: keep hosted process and transport probes confined
---------
Co-authored-by: dev-driver <dev-driver@openrig-build>
Co-authored-by: dev-qa <dev-qa@openrig-build>
Delta commits 3c24b69a0 ('docs: make shipped references self-contained')
and d83f84d70 ('fix(s12): classify packaged derived artifacts') modified
packages/daemon/policies/builtin/standard.policy.md and yolo.policy.md
content but did not update the corresponding entries in the packing-
policies test's AUTHORITY_SHA256 constant. Aligns the test's expected
hashes with the actual shipped-content hashes so the T7 byte-equal
check reflects the current shipped surface.
No product code change; no policy-content change; only the test's
expectation is being brought forward to match commits already in the
delta.
OPR.0.4.8.3 (guard-sealed immutable plan v2 eea3c778, base 4694e86d):
- canonical repo source packages/daemon/policies/builtin/{locked,standard,
open,yolo}.policy.md — VERBATIM copies of the authoritative slice-03
content (full sha256 pins in the tests)
- build-package.sh stages $DAEMON_DIR/policies into the assembled package
(specs-style block) and reports a policies file count
- new materializeBuiltinPolicyReference(): known-four allowlist, byte-
identical mode-0444 read-only inspection copies at
$OPENRIG_HOME/reference/policies/builtin/, unlink-then-write refresh over
read-only copies, mode reconciled on the content-skip path, named skips,
never throws; wired best-effort in startup beside the reference-docs block
(../policies/builtin resolves from dist in repo-run AND assembled layouts)
- pins: builtin-policy-reference.test.ts (inventory, verbatim hashes, byte+
mode materialization, tamper-restore idempotence, stranger exclusion,
missing-source named skips) + check-packing-policies.test.mjs (staging
block + source hashes, ADDED BESIDE the packing floor)
- scripts/verify-packaged-builtins.mjs: repeatable D5b probe — assembled
build-info identity (full SHA, dirty=false), assembled policy hashes, and
the compiled assembled startup boundary via exported createDaemon() (no
listen) under a temp OPENRIG_HOME + isolated DB
No resolver, no writer surface, no builtinPackageTarget(), no Seam-B/CLI/
enforcement surfaces; fences per the sealed plan.
Co-Authored-By: Claude Fable 5 <[email protected]>