﻿2026-06-09T03:00:33.7182540Z Current runner version: '2.334.0'
2026-06-09T03:00:33.7187392Z Runner name: 'kitsubito'
2026-06-09T03:00:33.7187917Z Runner group name: 'Default'
2026-06-09T03:00:33.7188570Z Machine name: 'KITSUBITO'
2026-06-09T03:00:33.7190444Z ##[group]GITHUB_TOKEN Permissions
2026-06-09T03:00:33.7192056Z Contents: read
2026-06-09T03:00:33.7192452Z Metadata: read
2026-06-09T03:00:33.7192819Z Packages: read
2026-06-09T03:00:33.7193182Z ##[endgroup]
2026-06-09T03:00:33.7194685Z Secret source: Actions
2026-06-09T03:00:33.7195172Z Prepare workflow directory
2026-06-09T03:00:33.7585310Z Prepare all required actions
2026-06-09T03:00:33.7613724Z Getting action download info
2026-06-09T03:00:34.2176213Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-09T03:00:34.8345118Z Complete job name: traceability
2026-06-09T03:00:34.9292662Z ##[group]Run actions/checkout@v5
2026-06-09T03:00:34.9293453Z with:
2026-06-09T03:00:34.9293850Z   repository: SaberMage/spt-core
2026-06-09T03:00:34.9298034Z   token: ***
2026-06-09T03:00:34.9298459Z   ssh-strict: true
2026-06-09T03:00:34.9298993Z   ssh-user: git
2026-06-09T03:00:34.9299498Z   persist-credentials: true
2026-06-09T03:00:34.9299928Z   clean: true
2026-06-09T03:00:34.9300314Z   sparse-checkout-cone-mode: true
2026-06-09T03:00:34.9300756Z   fetch-depth: 1
2026-06-09T03:00:34.9301127Z   fetch-tags: false
2026-06-09T03:00:34.9301519Z   show-progress: true
2026-06-09T03:00:34.9301900Z   lfs: false
2026-06-09T03:00:34.9302267Z   submodules: false
2026-06-09T03:00:34.9302653Z   set-safe-directory: true
2026-06-09T03:00:34.9303311Z ##[endgroup]
2026-06-09T03:00:35.0065206Z Syncing repository: SaberMage/spt-core
2026-06-09T03:00:35.0066800Z ##[group]Getting Git version info
2026-06-09T03:00:35.0067673Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-09T03:00:35.0068660Z [command]/usr/bin/git version
2026-06-09T03:00:35.0069125Z git version 2.43.0
2026-06-09T03:00:35.0070444Z ##[endgroup]
2026-06-09T03:00:35.0079206Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/aefc0cc8-7aa8-45d2-833a-59a995514b59' before making global git config changes
2026-06-09T03:00:35.0080432Z Adding repository directory to the temporary git global config as a safe directory
2026-06-09T03:00:35.0081805Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-09T03:00:35.0111239Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-09T03:00:35.0129115Z https://github.com/SaberMage/spt-core
2026-06-09T03:00:35.0139103Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-09T03:00:35.0141536Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-09T03:00:35.0169693Z refs/heads/dev-freeform
2026-06-09T03:00:35.0176937Z [command]/usr/bin/git checkout --detach
2026-06-09T03:00:35.0298601Z HEAD is now at 707c733 docs(mesh): MESH-D7-PLAN.md — revoke + timeboxed rotation + re-seed grace
2026-06-09T03:00:35.0365522Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-09T03:00:35.0399571Z Deleted branch dev-freeform (was 707c733).
2026-06-09T03:00:35.0432525Z ##[endgroup]
2026-06-09T03:00:35.0434943Z [command]/usr/bin/git submodule status
2026-06-09T03:00:35.0623948Z ##[group]Cleaning the repository
2026-06-09T03:00:35.0626811Z [command]/usr/bin/git clean -ffdx
2026-06-09T03:00:37.6153118Z Removing .adapter-notify/
2026-06-09T03:00:37.6153818Z Removing target/
2026-06-09T03:00:37.6161949Z [command]/usr/bin/git reset --hard HEAD
2026-06-09T03:00:37.6244083Z HEAD is now at 707c733 docs(mesh): MESH-D7-PLAN.md — revoke + timeboxed rotation + re-seed grace
2026-06-09T03:00:37.6249370Z ##[endgroup]
2026-06-09T03:00:37.6250348Z ##[group]Disabling automatic garbage collection
2026-06-09T03:00:37.6253914Z [command]/usr/bin/git config --local gc.auto 0
2026-06-09T03:00:37.6277978Z ##[endgroup]
2026-06-09T03:00:37.6278474Z ##[group]Setting up auth
2026-06-09T03:00:37.6282822Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-09T03:00:37.6308719Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-06-09T03:00:37.6501645Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-09T03:00:37.6523570Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-06-09T03:00:37.6702133Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-09T03:00:37.6725229Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-09T03:00:37.6911308Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-09T03:00:37.6939209Z ##[endgroup]
2026-06-09T03:00:37.6939694Z ##[group]Fetching the repository
2026-06-09T03:00:37.6944817Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +35d1672fdf999a4fc6e58fcd04ff5c953452beb0:refs/remotes/origin/main
2026-06-09T03:00:38.2676934Z From https://github.com/SaberMage/spt-core
2026-06-09T03:00:38.2677701Z  * [new ref]         35d1672fdf999a4fc6e58fcd04ff5c953452beb0 -> origin/main
2026-06-09T03:00:38.2692915Z ##[endgroup]
2026-06-09T03:00:38.2693650Z ##[group]Determining the checkout info
2026-06-09T03:00:38.2695888Z ##[endgroup]
2026-06-09T03:00:38.2700621Z [command]/usr/bin/git sparse-checkout disable
2026-06-09T03:00:38.2737537Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-09T03:00:38.2760957Z ##[group]Checking out the ref
2026-06-09T03:00:38.2763383Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main
2026-06-09T03:00:38.2857642Z Previous HEAD position was 707c733 docs(mesh): MESH-D7-PLAN.md — revoke + timeboxed rotation + re-seed grace
2026-06-09T03:00:38.2863735Z Switched to a new branch 'main'
2026-06-09T03:00:38.2864706Z branch 'main' set up to track 'origin/main'.
2026-06-09T03:00:38.2869321Z ##[endgroup]
2026-06-09T03:00:38.2898710Z [command]/usr/bin/git log -1 --format=%H
2026-06-09T03:00:38.2917079Z 35d1672fdf999a4fc6e58fcd04ff5c953452beb0
2026-06-09T03:00:38.3099672Z ##[group]Run WANT=0.1.2
2026-06-09T03:00:38.3099953Z [36;1mWANT=0.1.2[0m
2026-06-09T03:00:38.3100187Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-09T03:00:38.3100525Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-09T03:00:38.3100830Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-09T03:00:38.3101074Z [36;1melse[0m
2026-06-09T03:00:38.3101326Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-09T03:00:38.3101696Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-09T03:00:38.3102010Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-09T03:00:38.3102229Z [36;1m  rm -rf "$SRC"[0m
2026-06-09T03:00:38.3102463Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-09T03:00:38.3102850Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-09T03:00:38.3103330Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-09T03:00:38.3103640Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-09T03:00:38.3103927Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-09T03:00:38.3104208Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-09T03:00:38.3104436Z [36;1mfi[0m
2026-06-09T03:00:38.3104627Z [36;1m./traceable-reqs --version[0m
2026-06-09T03:00:38.3120086Z shell: /usr/bin/bash -e {0}
2026-06-09T03:00:38.3120311Z env:
2026-06-09T03:00:38.3120851Z   GH_TOKEN: ***
2026-06-09T03:00:38.3121040Z ##[endgroup]
2026-06-09T03:00:38.3222118Z traceable-reqs 0.1.2
2026-06-09T03:00:38.3301496Z ##[group]Run ./traceable-reqs check --json
2026-06-09T03:00:38.3301811Z [36;1m./traceable-reqs check --json[0m
2026-06-09T03:00:38.3314090Z shell: /usr/bin/bash -e {0}
2026-06-09T03:00:38.3314314Z ##[endgroup]
2026-06-09T03:00:38.4011539Z {
2026-06-09T03:00:38.4012244Z   "schemaVersion": 1,
2026-06-09T03:00:38.4012679Z   "summary": {
2026-06-09T03:00:38.4013221Z     "requirementCount": 175,
2026-06-09T03:00:38.4013851Z     "completeCount": 175,
2026-06-09T03:00:38.4014413Z     "incompleteCount": 0,
2026-06-09T03:00:38.4014951Z     "findingCount": 0
2026-06-09T03:00:38.4015444Z   },
2026-06-09T03:00:38.4015889Z   "requirements": [
2026-06-09T03:00:38.4016356Z     {
2026-06-09T03:00:38.4016805Z       "id": "REQ-API-1",
2026-06-09T03:00:38.4017583Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-09T03:00:38.4018269Z       "requiredStages": [
2026-06-09T03:00:38.4018703Z         "impl",
2026-06-09T03:00:38.4019066Z         "unit",
2026-06-09T03:00:38.4020004Z         "int"
2026-06-09T03:00:38.4020364Z       ],
2026-06-09T03:00:38.4020703Z       "stages": {
2026-06-09T03:00:38.4021060Z         "doc": {
2026-06-09T03:00:38.4021442Z           "complete": false,
2026-06-09T03:00:38.4021866Z           "evidence": []
2026-06-09T03:00:38.4022272Z         },
2026-06-09T03:00:38.4022625Z         "impl": {
2026-06-09T03:00:38.4023015Z           "complete": true,
2026-06-09T03:00:38.4023433Z           "evidence": [
2026-06-09T03:00:38.4023830Z             {
2026-06-09T03:00:38.4024235Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.4024759Z               "line": 15
2026-06-09T03:00:38.4025156Z             }
2026-06-09T03:00:38.4025511Z           ]
2026-06-09T03:00:38.4025858Z         },
2026-06-09T03:00:38.4026206Z         "int": {
2026-06-09T03:00:38.4026572Z           "complete": true,
2026-06-09T03:00:38.4027088Z           "evidence": [
2026-06-09T03:00:38.4027483Z             {
2026-06-09T03:00:38.4027920Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.4028481Z               "line": 13
2026-06-09T03:00:38.4028890Z             }
2026-06-09T03:00:38.4029278Z           ]
2026-06-09T03:00:38.4029707Z         },
2026-06-09T03:00:38.4030069Z         "unit": {
2026-06-09T03:00:38.4030464Z           "complete": true,
2026-06-09T03:00:38.4030896Z           "evidence": [
2026-06-09T03:00:38.4031292Z             {
2026-06-09T03:00:38.4031711Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.4032212Z               "line": 442
2026-06-09T03:00:38.4032621Z             },
2026-06-09T03:00:38.4032983Z             {
2026-06-09T03:00:38.4033392Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.4033909Z               "line": 448
2026-06-09T03:00:38.4034317Z             },
2026-06-09T03:00:38.4034680Z             {
2026-06-09T03:00:38.4035101Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.4035634Z               "line": 515
2026-06-09T03:00:38.4036048Z             }
2026-06-09T03:00:38.4036408Z           ]
2026-06-09T03:00:38.4036761Z         }
2026-06-09T03:00:38.4037194Z       }
2026-06-09T03:00:38.4037557Z     },
2026-06-09T03:00:38.4037901Z     {
2026-06-09T03:00:38.4038259Z       "id": "REQ-API-2",
2026-06-09T03:00:38.4038942Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-09T03:00:38.4039718Z       "requiredStages": [
2026-06-09T03:00:38.4040134Z         "impl",
2026-06-09T03:00:38.4040511Z         "unit",
2026-06-09T03:00:38.4040859Z         "int"
2026-06-09T03:00:38.4041223Z       ],
2026-06-09T03:00:38.4041552Z       "stages": {
2026-06-09T03:00:38.4041928Z         "doc": {
2026-06-09T03:00:38.4042299Z           "complete": false,
2026-06-09T03:00:38.4042744Z           "evidence": []
2026-06-09T03:00:38.4043149Z         },
2026-06-09T03:00:38.4043515Z         "impl": {
2026-06-09T03:00:38.4043895Z           "complete": true,
2026-06-09T03:00:38.4044320Z           "evidence": [
2026-06-09T03:00:38.4045351Z             {
2026-06-09T03:00:38.4045808Z               "path": "crates/spt-store/src/history.rs",
2026-06-09T03:00:38.4046370Z               "line": 15
2026-06-09T03:00:38.4046786Z             },
2026-06-09T03:00:38.4047264Z             {
2026-06-09T03:00:38.4047674Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.4048199Z               "line": 20
2026-06-09T03:00:38.4048589Z             },
2026-06-09T03:00:38.4048946Z             {
2026-06-09T03:00:38.4049362Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.4049869Z               "line": 139
2026-06-09T03:00:38.4050268Z             },
2026-06-09T03:00:38.4050617Z             {
2026-06-09T03:00:38.4051028Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4051541Z               "line": 21
2026-06-09T03:00:38.4051919Z             },
2026-06-09T03:00:38.4052263Z             {
2026-06-09T03:00:38.4052665Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4053202Z               "line": 38
2026-06-09T03:00:38.4053585Z             },
2026-06-09T03:00:38.4053924Z             {
2026-06-09T03:00:38.4054343Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4054856Z               "line": 190
2026-06-09T03:00:38.4055239Z             },
2026-06-09T03:00:38.4055587Z             {
2026-06-09T03:00:38.4055995Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4056507Z               "line": 232
2026-06-09T03:00:38.4056894Z             },
2026-06-09T03:00:38.4057294Z             {
2026-06-09T03:00:38.4057666Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4058139Z               "line": 262
2026-06-09T03:00:38.4058492Z             },
2026-06-09T03:00:38.4058811Z             {
2026-06-09T03:00:38.4059196Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4059648Z               "line": 17
2026-06-09T03:00:38.4059946Z             },
2026-06-09T03:00:38.4060295Z             {
2026-06-09T03:00:38.4060687Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4061139Z               "line": 30
2026-06-09T03:00:38.4061482Z             },
2026-06-09T03:00:38.4061811Z             {
2026-06-09T03:00:38.4062167Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4062609Z               "line": 63
2026-06-09T03:00:38.4062962Z             },
2026-06-09T03:00:38.4063272Z             {
2026-06-09T03:00:38.4063644Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4064096Z               "line": 76
2026-06-09T03:00:38.4064445Z             }
2026-06-09T03:00:38.4064760Z           ]
2026-06-09T03:00:38.4065073Z         },
2026-06-09T03:00:38.4065382Z         "int": {
2026-06-09T03:00:38.4065717Z           "complete": true,
2026-06-09T03:00:38.4066109Z           "evidence": [
2026-06-09T03:00:38.4066461Z             {
2026-06-09T03:00:38.4066838Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.4067373Z               "line": 14
2026-06-09T03:00:38.4067709Z             },
2026-06-09T03:00:38.4068007Z             {
2026-06-09T03:00:38.4068298Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.4068584Z               "line": 183
2026-06-09T03:00:38.4068804Z             }
2026-06-09T03:00:38.4068995Z           ]
2026-06-09T03:00:38.4069184Z         },
2026-06-09T03:00:38.4069376Z         "unit": {
2026-06-09T03:00:38.4069581Z           "complete": true,
2026-06-09T03:00:38.4069823Z           "evidence": [
2026-06-09T03:00:38.4070043Z             {
2026-06-09T03:00:38.4070285Z               "path": "crates/spt-store/src/history.rs",
2026-06-09T03:00:38.4070578Z               "line": 42
2026-06-09T03:00:38.4070793Z             },
2026-06-09T03:00:38.4070984Z             {
2026-06-09T03:00:38.4071218Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.4071504Z               "line": 254
2026-06-09T03:00:38.4071723Z             },
2026-06-09T03:00:38.4072177Z             {
2026-06-09T03:00:38.4072410Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4072695Z               "line": 438
2026-06-09T03:00:38.4072913Z             },
2026-06-09T03:00:38.4073107Z             {
2026-06-09T03:00:38.4073336Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4073626Z               "line": 449
2026-06-09T03:00:38.4073846Z             },
2026-06-09T03:00:38.4074036Z             {
2026-06-09T03:00:38.4074266Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4074547Z               "line": 581
2026-06-09T03:00:38.4074758Z             },
2026-06-09T03:00:38.4074952Z             {
2026-06-09T03:00:38.4075176Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4075453Z               "line": 593
2026-06-09T03:00:38.4075666Z             },
2026-06-09T03:00:38.4075858Z             {
2026-06-09T03:00:38.4076087Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4076382Z               "line": 141
2026-06-09T03:00:38.4076601Z             },
2026-06-09T03:00:38.4076797Z             {
2026-06-09T03:00:38.4077093Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4077341Z               "line": 185
2026-06-09T03:00:38.4077540Z             }
2026-06-09T03:00:38.4077717Z           ]
2026-06-09T03:00:38.4077889Z         }
2026-06-09T03:00:38.4078060Z       }
2026-06-09T03:00:38.4078236Z     },
2026-06-09T03:00:38.4078410Z     {
2026-06-09T03:00:38.4078591Z       "id": "REQ-API-3",
2026-06-09T03:00:38.4078853Z       "title": "commune/signoff are file-drops, not commands",
2026-06-09T03:00:38.4079144Z       "requiredStages": [
2026-06-09T03:00:38.4079354Z         "impl",
2026-06-09T03:00:38.4079536Z         "unit",
2026-06-09T03:00:38.4079927Z         "int"
2026-06-09T03:00:38.4080218Z       ],
2026-06-09T03:00:38.4080471Z       "stages": {
2026-06-09T03:00:38.4080817Z         "doc": {
2026-06-09T03:00:38.4081110Z           "complete": false,
2026-06-09T03:00:38.4081682Z           "evidence": []
2026-06-09T03:00:38.4082178Z         },
2026-06-09T03:00:38.4082616Z         "impl": {
2026-06-09T03:00:38.4083197Z           "complete": true,
2026-06-09T03:00:38.4083700Z           "evidence": [
2026-06-09T03:00:38.4108291Z             {
2026-06-09T03:00:38.4108683Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4109050Z               "line": 27
2026-06-09T03:00:38.4109322Z             },
2026-06-09T03:00:38.4109580Z             {
2026-06-09T03:00:38.4109887Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4110272Z               "line": 372
2026-06-09T03:00:38.4110562Z             }
2026-06-09T03:00:38.4110810Z           ]
2026-06-09T03:00:38.4111048Z         },
2026-06-09T03:00:38.4111325Z         "int": {
2026-06-09T03:00:38.4111597Z           "complete": true,
2026-06-09T03:00:38.4111903Z           "evidence": [
2026-06-09T03:00:38.4112194Z             {
2026-06-09T03:00:38.4112544Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.4112929Z               "line": 257
2026-06-09T03:00:38.4113220Z             }
2026-06-09T03:00:38.4113482Z           ]
2026-06-09T03:00:38.4113720Z         },
2026-06-09T03:00:38.4113968Z         "unit": {
2026-06-09T03:00:38.4114249Z           "complete": true,
2026-06-09T03:00:38.4114540Z           "evidence": [
2026-06-09T03:00:38.4114822Z             {
2026-06-09T03:00:38.4115128Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4115536Z               "line": 242
2026-06-09T03:00:38.4115832Z             },
2026-06-09T03:00:38.4116104Z             {
2026-06-09T03:00:38.4116428Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4116833Z               "line": 622
2026-06-09T03:00:38.4117219Z             }
2026-06-09T03:00:38.4117476Z           ]
2026-06-09T03:00:38.4117669Z         }
2026-06-09T03:00:38.4117838Z       }
2026-06-09T03:00:38.4118005Z     },
2026-06-09T03:00:38.4118169Z     {
2026-06-09T03:00:38.4118618Z       "id": "REQ-ARCH-1",
2026-06-09T03:00:38.4118871Z       "title": "Many small acyclically-layered crates",
2026-06-09T03:00:38.4119127Z       "requiredStages": [
2026-06-09T03:00:38.4119318Z         "impl"
2026-06-09T03:00:38.4119495Z       ],
2026-06-09T03:00:38.4119671Z       "stages": {
2026-06-09T03:00:38.4119844Z         "doc": {
2026-06-09T03:00:38.4120028Z           "complete": false,
2026-06-09T03:00:38.4120235Z           "evidence": []
2026-06-09T03:00:38.4120428Z         },
2026-06-09T03:00:38.4120599Z         "impl": {
2026-06-09T03:00:38.4120789Z           "complete": true,
2026-06-09T03:00:38.4120988Z           "evidence": [
2026-06-09T03:00:38.4121189Z             {
2026-06-09T03:00:38.4121389Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-09T03:00:38.4121642Z               "line": 16
2026-06-09T03:00:38.4121833Z             },
2026-06-09T03:00:38.4122009Z             {
2026-06-09T03:00:38.4122214Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-09T03:00:38.4122477Z               "line": 12
2026-06-09T03:00:38.4122672Z             },
2026-06-09T03:00:38.4122848Z             {
2026-06-09T03:00:38.4123048Z               "path": "crates/spt-store/src/lib.rs",
2026-06-09T03:00:38.4123283Z               "line": 12
2026-06-09T03:00:38.4123456Z             }
2026-06-09T03:00:38.4123626Z           ]
2026-06-09T03:00:38.4123790Z         },
2026-06-09T03:00:38.4123951Z         "int": {
2026-06-09T03:00:38.4124133Z           "complete": false,
2026-06-09T03:00:38.4124329Z           "evidence": []
2026-06-09T03:00:38.4124500Z         },
2026-06-09T03:00:38.4124653Z         "unit": {
2026-06-09T03:00:38.4124829Z           "complete": false,
2026-06-09T03:00:38.4125020Z           "evidence": []
2026-06-09T03:00:38.4125200Z         }
2026-06-09T03:00:38.4125359Z       }
2026-06-09T03:00:38.4125514Z     },
2026-06-09T03:00:38.4125671Z     {
2026-06-09T03:00:38.4125840Z       "id": "REQ-ARCH-2",
2026-06-09T03:00:38.4126108Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-09T03:00:38.4126423Z       "requiredStages": [
2026-06-09T03:00:38.4126609Z         "impl"
2026-06-09T03:00:38.4126780Z       ],
2026-06-09T03:00:38.4126938Z       "stages": {
2026-06-09T03:00:38.4127186Z         "doc": {
2026-06-09T03:00:38.4127371Z           "complete": false,
2026-06-09T03:00:38.4127568Z           "evidence": []
2026-06-09T03:00:38.4127748Z         },
2026-06-09T03:00:38.4127907Z         "impl": {
2026-06-09T03:00:38.4128087Z           "complete": true,
2026-06-09T03:00:38.4128278Z           "evidence": [
2026-06-09T03:00:38.4128457Z             {
2026-06-09T03:00:38.4128653Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-09T03:00:38.4128892Z               "line": 18
2026-06-09T03:00:38.4129077Z             }
2026-06-09T03:00:38.4129240Z           ]
2026-06-09T03:00:38.4129411Z         },
2026-06-09T03:00:38.4129578Z         "int": {
2026-06-09T03:00:38.4129760Z           "complete": false,
2026-06-09T03:00:38.4129964Z           "evidence": []
2026-06-09T03:00:38.4130156Z         },
2026-06-09T03:00:38.4130317Z         "unit": {
2026-06-09T03:00:38.4130490Z           "complete": false,
2026-06-09T03:00:38.4130690Z           "evidence": []
2026-06-09T03:00:38.4130870Z         }
2026-06-09T03:00:38.4131032Z       }
2026-06-09T03:00:38.4131192Z     },
2026-06-09T03:00:38.4131349Z     {
2026-06-09T03:00:38.4131511Z       "id": "REQ-ARCH-3",
2026-06-09T03:00:38.4131812Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-09T03:00:38.4132150Z       "requiredStages": [
2026-06-09T03:00:38.4132341Z         "impl",
2026-06-09T03:00:38.4132512Z         "unit"
2026-06-09T03:00:38.4132680Z       ],
2026-06-09T03:00:38.4132836Z       "stages": {
2026-06-09T03:00:38.4133009Z         "doc": {
2026-06-09T03:00:38.4133179Z           "complete": false,
2026-06-09T03:00:38.4133375Z           "evidence": []
2026-06-09T03:00:38.4133560Z         },
2026-06-09T03:00:38.4133721Z         "impl": {
2026-06-09T03:00:38.4134115Z           "complete": true,
2026-06-09T03:00:38.4134316Z           "evidence": [
2026-06-09T03:00:38.4134492Z             {
2026-06-09T03:00:38.4134693Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T03:00:38.4134936Z               "line": 34
2026-06-09T03:00:38.4135107Z             },
2026-06-09T03:00:38.4135265Z             {
2026-06-09T03:00:38.4135451Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T03:00:38.4135689Z               "line": 41
2026-06-09T03:00:38.4135867Z             }
2026-06-09T03:00:38.4136027Z           ]
2026-06-09T03:00:38.4136189Z         },
2026-06-09T03:00:38.4136354Z         "int": {
2026-06-09T03:00:38.4136535Z           "complete": false,
2026-06-09T03:00:38.4136729Z           "evidence": []
2026-06-09T03:00:38.4136907Z         },
2026-06-09T03:00:38.4137150Z         "unit": {
2026-06-09T03:00:38.4137340Z           "complete": true,
2026-06-09T03:00:38.4137541Z           "evidence": [
2026-06-09T03:00:38.4137722Z             {
2026-06-09T03:00:38.4137936Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T03:00:38.4138185Z               "line": 51
2026-06-09T03:00:38.4138361Z             },
2026-06-09T03:00:38.4138527Z             {
2026-06-09T03:00:38.4138720Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T03:00:38.4138960Z               "line": 71
2026-06-09T03:00:38.4139142Z             },
2026-06-09T03:00:38.4139308Z             {
2026-06-09T03:00:38.4139500Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T03:00:38.4139753Z               "line": 83
2026-06-09T03:00:38.4139923Z             }
2026-06-09T03:00:38.4140082Z           ]
2026-06-09T03:00:38.4140247Z         }
2026-06-09T03:00:38.4140406Z       }
2026-06-09T03:00:38.4140572Z     },
2026-06-09T03:00:38.4140721Z     {
2026-06-09T03:00:38.4140882Z       "id": "REQ-ARCH-4",
2026-06-09T03:00:38.4141148Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-09T03:00:38.4141458Z       "requiredStages": [
2026-06-09T03:00:38.4141654Z         "impl",
2026-06-09T03:00:38.4141827Z         "unit"
2026-06-09T03:00:38.4141991Z       ],
2026-06-09T03:00:38.4142152Z       "stages": {
2026-06-09T03:00:38.4142319Z         "doc": {
2026-06-09T03:00:38.4142495Z           "complete": false,
2026-06-09T03:00:38.4142691Z           "evidence": []
2026-06-09T03:00:38.4142868Z         },
2026-06-09T03:00:38.4143025Z         "impl": {
2026-06-09T03:00:38.4143202Z           "complete": true,
2026-06-09T03:00:38.4143396Z           "evidence": [
2026-06-09T03:00:38.4143574Z             {
2026-06-09T03:00:38.4143773Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4144020Z               "line": 82
2026-06-09T03:00:38.4144201Z             },
2026-06-09T03:00:38.4144366Z             {
2026-06-09T03:00:38.4144552Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4144790Z               "line": 96
2026-06-09T03:00:38.4144976Z             },
2026-06-09T03:00:38.4145149Z             {
2026-06-09T03:00:38.4145343Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4145577Z               "line": 116
2026-06-09T03:00:38.4145764Z             },
2026-06-09T03:00:38.4145925Z             {
2026-06-09T03:00:38.4146112Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4146340Z               "line": 131
2026-06-09T03:00:38.4146516Z             },
2026-06-09T03:00:38.4146682Z             {
2026-06-09T03:00:38.4146866Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4147181Z               "line": 181
2026-06-09T03:00:38.4147362Z             }
2026-06-09T03:00:38.4147529Z           ]
2026-06-09T03:00:38.4147691Z         },
2026-06-09T03:00:38.4147853Z         "int": {
2026-06-09T03:00:38.4148035Z           "complete": false,
2026-06-09T03:00:38.4148234Z           "evidence": []
2026-06-09T03:00:38.4148416Z         },
2026-06-09T03:00:38.4148587Z         "unit": {
2026-06-09T03:00:38.4148873Z           "complete": true,
2026-06-09T03:00:38.4149158Z           "evidence": [
2026-06-09T03:00:38.4149342Z             {
2026-06-09T03:00:38.4149530Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4149774Z               "line": 242
2026-06-09T03:00:38.4149955Z             },
2026-06-09T03:00:38.4150126Z             {
2026-06-09T03:00:38.4150318Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4150556Z               "line": 252
2026-06-09T03:00:38.4150737Z             },
2026-06-09T03:00:38.4150900Z             {
2026-06-09T03:00:38.4151085Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4151319Z               "line": 263
2026-06-09T03:00:38.4151495Z             },
2026-06-09T03:00:38.4151666Z             {
2026-06-09T03:00:38.4151854Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4152085Z               "line": 274
2026-06-09T03:00:38.4152270Z             },
2026-06-09T03:00:38.4152435Z             {
2026-06-09T03:00:38.4152641Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4152875Z               "line": 286
2026-06-09T03:00:38.4153060Z             },
2026-06-09T03:00:38.4153218Z             {
2026-06-09T03:00:38.4153413Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4153651Z               "line": 299
2026-06-09T03:00:38.4153829Z             },
2026-06-09T03:00:38.4153994Z             {
2026-06-09T03:00:38.4154181Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4154415Z               "line": 310
2026-06-09T03:00:38.4154595Z             },
2026-06-09T03:00:38.4154757Z             {
2026-06-09T03:00:38.4154945Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4155184Z               "line": 327
2026-06-09T03:00:38.4155360Z             },
2026-06-09T03:00:38.4155527Z             {
2026-06-09T03:00:38.4155719Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4155955Z               "line": 358
2026-06-09T03:00:38.4156171Z             }
2026-06-09T03:00:38.4156343Z           ]
2026-06-09T03:00:38.4156509Z         }
2026-06-09T03:00:38.4156672Z       }
2026-06-09T03:00:38.4156828Z     },
2026-06-09T03:00:38.4157076Z     {
2026-06-09T03:00:38.4157247Z       "id": "REQ-CLI-1",
2026-06-09T03:00:38.4158422Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-09T03:00:38.4159605Z       "requiredStages": [
2026-06-09T03:00:38.4159806Z         "impl",
2026-06-09T03:00:38.4159981Z         "unit"
2026-06-09T03:00:38.4160142Z       ],
2026-06-09T03:00:38.4160315Z       "stages": {
2026-06-09T03:00:38.4160486Z         "doc": {
2026-06-09T03:00:38.4160682Z           "complete": false,
2026-06-09T03:00:38.4160887Z           "evidence": []
2026-06-09T03:00:38.4161072Z         },
2026-06-09T03:00:38.4161245Z         "impl": {
2026-06-09T03:00:38.4161425Z           "complete": true,
2026-06-09T03:00:38.4161621Z           "evidence": [
2026-06-09T03:00:38.4161808Z             {
2026-06-09T03:00:38.4161997Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4162231Z               "line": 193
2026-06-09T03:00:38.4162414Z             },
2026-06-09T03:00:38.4162579Z             {
2026-06-09T03:00:38.4162755Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4162985Z               "line": 769
2026-06-09T03:00:38.4163173Z             },
2026-06-09T03:00:38.4163329Z             {
2026-06-09T03:00:38.4163507Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4163736Z               "line": 1070
2026-06-09T03:00:38.4163925Z             },
2026-06-09T03:00:38.4164088Z             {
2026-06-09T03:00:38.4164375Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4164689Z               "line": 1913
2026-06-09T03:00:38.4164874Z             }
2026-06-09T03:00:38.4165042Z           ]
2026-06-09T03:00:38.4165207Z         },
2026-06-09T03:00:38.4165374Z         "int": {
2026-06-09T03:00:38.4165552Z           "complete": false,
2026-06-09T03:00:38.4165758Z           "evidence": []
2026-06-09T03:00:38.4165949Z         },
2026-06-09T03:00:38.4166115Z         "unit": {
2026-06-09T03:00:38.4166307Z           "complete": true,
2026-06-09T03:00:38.4166511Z           "evidence": [
2026-06-09T03:00:38.4166692Z             {
2026-06-09T03:00:38.4166884Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4167199Z               "line": 5037
2026-06-09T03:00:38.4167393Z             }
2026-06-09T03:00:38.4167571Z           ]
2026-06-09T03:00:38.4167736Z         }
2026-06-09T03:00:38.4167903Z       }
2026-06-09T03:00:38.4168077Z     },
2026-06-09T03:00:38.4168244Z     {
2026-06-09T03:00:38.4168419Z       "id": "REQ-CLI-2",
2026-06-09T03:00:38.4169212Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-09T03:00:38.4170022Z       "requiredStages": [
2026-06-09T03:00:38.4170217Z         "impl",
2026-06-09T03:00:38.4170395Z         "unit"
2026-06-09T03:00:38.4170574Z       ],
2026-06-09T03:00:38.4170736Z       "stages": {
2026-06-09T03:00:38.4170913Z         "doc": {
2026-06-09T03:00:38.4171095Z           "complete": false,
2026-06-09T03:00:38.4171298Z           "evidence": []
2026-06-09T03:00:38.4171486Z         },
2026-06-09T03:00:38.4171657Z         "impl": {
2026-06-09T03:00:38.4171833Z           "complete": true,
2026-06-09T03:00:38.4172034Z           "evidence": [
2026-06-09T03:00:38.4172224Z             {
2026-06-09T03:00:38.4172434Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4172697Z               "line": 271
2026-06-09T03:00:38.4172887Z             },
2026-06-09T03:00:38.4173055Z             {
2026-06-09T03:00:38.4173257Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-09T03:00:38.4173512Z               "line": 65
2026-06-09T03:00:38.4173700Z             },
2026-06-09T03:00:38.4173880Z             {
2026-06-09T03:00:38.4174072Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.4174324Z               "line": 239
2026-06-09T03:00:38.4174509Z             },
2026-06-09T03:00:38.4174681Z             {
2026-06-09T03:00:38.4174872Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4175101Z               "line": 337
2026-06-09T03:00:38.4175287Z             },
2026-06-09T03:00:38.4183486Z             {
2026-06-09T03:00:38.4183704Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4183955Z               "line": 811
2026-06-09T03:00:38.4184149Z             },
2026-06-09T03:00:38.4184335Z             {
2026-06-09T03:00:38.4184527Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4184755Z               "line": 1261
2026-06-09T03:00:38.4184950Z             },
2026-06-09T03:00:38.4185118Z             {
2026-06-09T03:00:38.4185298Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4185532Z               "line": 1316
2026-06-09T03:00:38.4185718Z             },
2026-06-09T03:00:38.4185880Z             {
2026-06-09T03:00:38.4186062Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4186284Z               "line": 1342
2026-06-09T03:00:38.4186461Z             }
2026-06-09T03:00:38.4186615Z           ]
2026-06-09T03:00:38.4186774Z         },
2026-06-09T03:00:38.4186930Z         "int": {
2026-06-09T03:00:38.4187179Z           "complete": false,
2026-06-09T03:00:38.4187379Z           "evidence": []
2026-06-09T03:00:38.4187565Z         },
2026-06-09T03:00:38.4187737Z         "unit": {
2026-06-09T03:00:38.4187912Z           "complete": true,
2026-06-09T03:00:38.4188461Z           "evidence": [
2026-06-09T03:00:38.4188649Z             {
2026-06-09T03:00:38.4188851Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.4189098Z               "line": 309
2026-06-09T03:00:38.4189283Z             },
2026-06-09T03:00:38.4189445Z             {
2026-06-09T03:00:38.4189641Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4189869Z               "line": 5175
2026-06-09T03:00:38.4190055Z             }
2026-06-09T03:00:38.4190217Z           ]
2026-06-09T03:00:38.4190379Z         }
2026-06-09T03:00:38.4190537Z       }
2026-06-09T03:00:38.4190699Z     },
2026-06-09T03:00:38.4190862Z     {
2026-06-09T03:00:38.4191027Z       "id": "REQ-CLI-3",
2026-06-09T03:00:38.4191842Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-09T03:00:38.4192676Z       "requiredStages": [
2026-06-09T03:00:38.4192868Z         "impl",
2026-06-09T03:00:38.4193048Z         "unit"
2026-06-09T03:00:38.4193220Z       ],
2026-06-09T03:00:38.4193392Z       "stages": {
2026-06-09T03:00:38.4193573Z         "doc": {
2026-06-09T03:00:38.4193760Z           "complete": false,
2026-06-09T03:00:38.4193968Z           "evidence": []
2026-06-09T03:00:38.4194160Z         },
2026-06-09T03:00:38.4194320Z         "impl": {
2026-06-09T03:00:38.4194506Z           "complete": true,
2026-06-09T03:00:38.4194705Z           "evidence": [
2026-06-09T03:00:38.4194886Z             {
2026-06-09T03:00:38.4195073Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4195315Z               "line": 763
2026-06-09T03:00:38.4195506Z             }
2026-06-09T03:00:38.4195668Z           ]
2026-06-09T03:00:38.4195825Z         },
2026-06-09T03:00:38.4195988Z         "int": {
2026-06-09T03:00:38.4196164Z           "complete": false,
2026-06-09T03:00:38.4196374Z           "evidence": []
2026-06-09T03:00:38.4196560Z         },
2026-06-09T03:00:38.4196727Z         "unit": {
2026-06-09T03:00:38.4196906Z           "complete": true,
2026-06-09T03:00:38.4197180Z           "evidence": [
2026-06-09T03:00:38.4197363Z             {
2026-06-09T03:00:38.4197547Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4197777Z               "line": 5002
2026-06-09T03:00:38.4197959Z             }
2026-06-09T03:00:38.4198125Z           ]
2026-06-09T03:00:38.4198283Z         }
2026-06-09T03:00:38.4198440Z       }
2026-06-09T03:00:38.4198603Z     },
2026-06-09T03:00:38.4198754Z     {
2026-06-09T03:00:38.4198922Z       "id": "REQ-CONSENT-1",
2026-06-09T03:00:38.4199896Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-09T03:00:38.4200878Z       "requiredStages": [
2026-06-09T03:00:38.4201068Z         "impl",
2026-06-09T03:00:38.4201240Z         "unit"
2026-06-09T03:00:38.4201407Z       ],
2026-06-09T03:00:38.4201569Z       "stages": {
2026-06-09T03:00:38.4201741Z         "doc": {
2026-06-09T03:00:38.4201912Z           "complete": false,
2026-06-09T03:00:38.4202109Z           "evidence": []
2026-06-09T03:00:38.4202288Z         },
2026-06-09T03:00:38.4202451Z         "impl": {
2026-06-09T03:00:38.4202636Z           "complete": true,
2026-06-09T03:00:38.4202832Z           "evidence": [
2026-06-09T03:00:38.4203017Z             {
2026-06-09T03:00:38.4203222Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4203461Z               "line": 27
2026-06-09T03:00:38.4203652Z             },
2026-06-09T03:00:38.4203818Z             {
2026-06-09T03:00:38.4204015Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4204471Z               "line": 75
2026-06-09T03:00:38.4204654Z             },
2026-06-09T03:00:38.4204904Z             {
2026-06-09T03:00:38.4205108Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4205351Z               "line": 98
2026-06-09T03:00:38.4205531Z             },
2026-06-09T03:00:38.4205704Z             {
2026-06-09T03:00:38.4205923Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T03:00:38.4206156Z               "line": 82
2026-06-09T03:00:38.4206338Z             },
2026-06-09T03:00:38.4206499Z             {
2026-06-09T03:00:38.4206695Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T03:00:38.4206930Z               "line": 109
2026-06-09T03:00:38.4207192Z             },
2026-06-09T03:00:38.4207357Z             {
2026-06-09T03:00:38.4207543Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T03:00:38.4207778Z               "line": 127
2026-06-09T03:00:38.4207956Z             },
2026-06-09T03:00:38.4208137Z             {
2026-06-09T03:00:38.4208332Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T03:00:38.4208571Z               "line": 142
2026-06-09T03:00:38.4208747Z             },
2026-06-09T03:00:38.4208914Z             {
2026-06-09T03:00:38.4209086Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4209314Z               "line": 4738
2026-06-09T03:00:38.4209501Z             }
2026-06-09T03:00:38.4209663Z           ]
2026-06-09T03:00:38.4209821Z         },
2026-06-09T03:00:38.4209986Z         "int": {
2026-06-09T03:00:38.4210166Z           "complete": false,
2026-06-09T03:00:38.4210365Z           "evidence": []
2026-06-09T03:00:38.4210547Z         },
2026-06-09T03:00:38.4210708Z         "unit": {
2026-06-09T03:00:38.4210880Z           "complete": true,
2026-06-09T03:00:38.4211076Z           "evidence": [
2026-06-09T03:00:38.4211251Z             {
2026-06-09T03:00:38.4211457Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4211701Z               "line": 334
2026-06-09T03:00:38.4211891Z             },
2026-06-09T03:00:38.4212059Z             {
2026-06-09T03:00:38.4212253Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4212490Z               "line": 380
2026-06-09T03:00:38.4212669Z             },
2026-06-09T03:00:38.4212829Z             {
2026-06-09T03:00:38.4213025Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4213253Z               "line": 391
2026-06-09T03:00:38.4213445Z             },
2026-06-09T03:00:38.4213611Z             {
2026-06-09T03:00:38.4213811Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T03:00:38.4214040Z               "line": 165
2026-06-09T03:00:38.4214226Z             },
2026-06-09T03:00:38.4214388Z             {
2026-06-09T03:00:38.4214580Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T03:00:38.4214813Z               "line": 184
2026-06-09T03:00:38.4214994Z             },
2026-06-09T03:00:38.4215156Z             {
2026-06-09T03:00:38.4215355Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T03:00:38.4215589Z               "line": 204
2026-06-09T03:00:38.4215763Z             },
2026-06-09T03:00:38.4215926Z             {
2026-06-09T03:00:38.4216106Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4216335Z               "line": 5336
2026-06-09T03:00:38.4216522Z             }
2026-06-09T03:00:38.4216687Z           ]
2026-06-09T03:00:38.4216846Z         }
2026-06-09T03:00:38.4217098Z       }
2026-06-09T03:00:38.4217241Z     },
2026-06-09T03:00:38.4217398Z     {
2026-06-09T03:00:38.4217555Z       "id": "REQ-CONSENT-2",
2026-06-09T03:00:38.4218478Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-09T03:00:38.4219508Z       "requiredStages": [
2026-06-09T03:00:38.4219798Z         "impl",
2026-06-09T03:00:38.4219970Z         "unit"
2026-06-09T03:00:38.4220136Z       ],
2026-06-09T03:00:38.4220304Z       "stages": {
2026-06-09T03:00:38.4220470Z         "doc": {
2026-06-09T03:00:38.4220651Z           "complete": false,
2026-06-09T03:00:38.4220848Z           "evidence": []
2026-06-09T03:00:38.4221036Z         },
2026-06-09T03:00:38.4221201Z         "impl": {
2026-06-09T03:00:38.4221374Z           "complete": true,
2026-06-09T03:00:38.4221569Z           "evidence": [
2026-06-09T03:00:38.4221750Z             {
2026-06-09T03:00:38.4221951Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4222193Z               "line": 140
2026-06-09T03:00:38.4222375Z             },
2026-06-09T03:00:38.4222547Z             {
2026-06-09T03:00:38.4222736Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4222976Z               "line": 165
2026-06-09T03:00:38.4223162Z             },
2026-06-09T03:00:38.4223337Z             {
2026-06-09T03:00:38.4223533Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4223761Z               "line": 199
2026-06-09T03:00:38.4223942Z             },
2026-06-09T03:00:38.4224099Z             {
2026-06-09T03:00:38.4224291Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4224530Z               "line": 241
2026-06-09T03:00:38.4224709Z             },
2026-06-09T03:00:38.4224873Z             {
2026-06-09T03:00:38.4225068Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4225301Z               "line": 269
2026-06-09T03:00:38.4225488Z             },
2026-06-09T03:00:38.4225649Z             {
2026-06-09T03:00:38.4225851Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4226087Z               "line": 300
2026-06-09T03:00:38.4226270Z             },
2026-06-09T03:00:38.4226433Z             {
2026-06-09T03:00:38.4226613Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4226858Z               "line": 4603
2026-06-09T03:00:38.4227324Z             },
2026-06-09T03:00:38.4227639Z             {
2026-06-09T03:00:38.4227891Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4228197Z               "line": 4661
2026-06-09T03:00:38.4228549Z             }
2026-06-09T03:00:38.4228828Z           ]
2026-06-09T03:00:38.4229024Z         },
2026-06-09T03:00:38.4229218Z         "int": {
2026-06-09T03:00:38.4229443Z           "complete": false,
2026-06-09T03:00:38.4229696Z           "evidence": []
2026-06-09T03:00:38.4229915Z         },
2026-06-09T03:00:38.4230105Z         "unit": {
2026-06-09T03:00:38.4230316Z           "complete": true,
2026-06-09T03:00:38.4230550Z           "evidence": [
2026-06-09T03:00:38.4230768Z             {
2026-06-09T03:00:38.4231007Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4231319Z               "line": 419
2026-06-09T03:00:38.4231542Z             },
2026-06-09T03:00:38.4231742Z             {
2026-06-09T03:00:38.4232010Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4232300Z               "line": 436
2026-06-09T03:00:38.4232521Z             },
2026-06-09T03:00:38.4232715Z             {
2026-06-09T03:00:38.4232944Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4233240Z               "line": 472
2026-06-09T03:00:38.4233451Z             },
2026-06-09T03:00:38.4233649Z             {
2026-06-09T03:00:38.4233883Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.4234174Z               "line": 516
2026-06-09T03:00:38.4234393Z             },
2026-06-09T03:00:38.4234588Z             {
2026-06-09T03:00:38.4234827Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4235114Z               "line": 6231
2026-06-09T03:00:38.4235332Z             },
2026-06-09T03:00:38.4235527Z             {
2026-06-09T03:00:38.4235743Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4236020Z               "line": 6313
2026-06-09T03:00:38.4236585Z             }
2026-06-09T03:00:38.4236784Z           ]
2026-06-09T03:00:38.4237041Z         }
2026-06-09T03:00:38.4237240Z       }
2026-06-09T03:00:38.4237437Z     },
2026-06-09T03:00:38.4237628Z     {
2026-06-09T03:00:38.4237836Z       "id": "REQ-CONV-1",
2026-06-09T03:00:38.4239492Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-09T03:00:38.4240844Z       "requiredStages": [
2026-06-09T03:00:38.4241042Z         "impl",
2026-06-09T03:00:38.4241214Z         "unit"
2026-06-09T03:00:38.4241381Z       ],
2026-06-09T03:00:38.4241548Z       "stages": {
2026-06-09T03:00:38.4241732Z         "doc": {
2026-06-09T03:00:38.4241916Z           "complete": false,
2026-06-09T03:00:38.4242112Z           "evidence": []
2026-06-09T03:00:38.4242298Z         },
2026-06-09T03:00:38.4242465Z         "impl": {
2026-06-09T03:00:38.4242641Z           "complete": true,
2026-06-09T03:00:38.4242842Z           "evidence": [
2026-06-09T03:00:38.4243023Z             {
2026-06-09T03:00:38.4243223Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4243476Z               "line": 696
2026-06-09T03:00:38.4243658Z             },
2026-06-09T03:00:38.4243823Z             {
2026-06-09T03:00:38.4244030Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.4244277Z               "line": 94
2026-06-09T03:00:38.4244457Z             },
2026-06-09T03:00:38.4244619Z             {
2026-06-09T03:00:38.4244815Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.4245058Z               "line": 345
2026-06-09T03:00:38.4245258Z             },
2026-06-09T03:00:38.4245430Z             {
2026-06-09T03:00:38.4245626Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.4245873Z               "line": 387
2026-06-09T03:00:38.4246064Z             },
2026-06-09T03:00:38.4246226Z             {
2026-06-09T03:00:38.4246416Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.4246656Z               "line": 472
2026-06-09T03:00:38.4246842Z             },
2026-06-09T03:00:38.4247111Z             {
2026-06-09T03:00:38.4247311Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4247558Z               "line": 629
2026-06-09T03:00:38.4247738Z             },
2026-06-09T03:00:38.4247897Z             {
2026-06-09T03:00:38.4248086Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4248321Z               "line": 655
2026-06-09T03:00:38.4248502Z             },
2026-06-09T03:00:38.4248664Z             {
2026-06-09T03:00:38.4248865Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.4249132Z               "line": 369
2026-06-09T03:00:38.4249331Z             },
2026-06-09T03:00:38.4249575Z             {
2026-06-09T03:00:38.4249807Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T03:00:38.4250042Z               "line": 19
2026-06-09T03:00:38.4250221Z             }
2026-06-09T03:00:38.4250377Z           ]
2026-06-09T03:00:38.4250540Z         },
2026-06-09T03:00:38.4250701Z         "int": {
2026-06-09T03:00:38.4250883Z           "complete": false,
2026-06-09T03:00:38.4251079Z           "evidence": []
2026-06-09T03:00:38.4251263Z         },
2026-06-09T03:00:38.4251422Z         "unit": {
2026-06-09T03:00:38.4251593Z           "complete": true,
2026-06-09T03:00:38.4251784Z           "evidence": [
2026-06-09T03:00:38.4251960Z             {
2026-06-09T03:00:38.4252159Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4252407Z               "line": 990
2026-06-09T03:00:38.4252824Z             },
2026-06-09T03:00:38.4252997Z             {
2026-06-09T03:00:38.4253186Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T03:00:38.4253435Z               "line": 108
2026-06-09T03:00:38.4253612Z             },
2026-06-09T03:00:38.4253774Z             {
2026-06-09T03:00:38.4253966Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T03:00:38.4254208Z               "line": 134
2026-06-09T03:00:38.4254388Z             },
2026-06-09T03:00:38.4254547Z             {
2026-06-09T03:00:38.4254731Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T03:00:38.4254990Z               "line": 144
2026-06-09T03:00:38.4255169Z             }
2026-06-09T03:00:38.4255342Z           ]
2026-06-09T03:00:38.4255503Z         }
2026-06-09T03:00:38.4255666Z       }
2026-06-09T03:00:38.4255827Z     },
2026-06-09T03:00:38.4255981Z     {
2026-06-09T03:00:38.4256152Z       "id": "REQ-CONV-2",
2026-06-09T03:00:38.4303354Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-09T03:00:38.4304422Z       "requiredStages": [
2026-06-09T03:00:38.4304627Z         "impl",
2026-06-09T03:00:38.4304795Z         "unit"
2026-06-09T03:00:38.4304956Z       ],
2026-06-09T03:00:38.4305117Z       "stages": {
2026-06-09T03:00:38.4305282Z         "doc": {
2026-06-09T03:00:38.4305468Z           "complete": false,
2026-06-09T03:00:38.4305663Z           "evidence": []
2026-06-09T03:00:38.4305845Z         },
2026-06-09T03:00:38.4306006Z         "impl": {
2026-06-09T03:00:38.4306179Z           "complete": true,
2026-06-09T03:00:38.4306369Z           "evidence": [
2026-06-09T03:00:38.4306550Z             {
2026-06-09T03:00:38.4306766Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4307104Z               "line": 316
2026-06-09T03:00:38.4307289Z             },
2026-06-09T03:00:38.4307452Z             {
2026-06-09T03:00:38.4307648Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4307893Z               "line": 333
2026-06-09T03:00:38.4308071Z             },
2026-06-09T03:00:38.4308232Z             {
2026-06-09T03:00:38.4308433Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4308686Z               "line": 761
2026-06-09T03:00:38.4308871Z             },
2026-06-09T03:00:38.4309039Z             {
2026-06-09T03:00:38.4309239Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4309486Z               "line": 772
2026-06-09T03:00:38.4309669Z             },
2026-06-09T03:00:38.4309825Z             {
2026-06-09T03:00:38.4310012Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4310251Z               "line": 334
2026-06-09T03:00:38.4310439Z             },
2026-06-09T03:00:38.4310606Z             {
2026-06-09T03:00:38.4310789Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4311019Z               "line": 1868
2026-06-09T03:00:38.4311205Z             },
2026-06-09T03:00:38.4311358Z             {
2026-06-09T03:00:38.4311534Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4311752Z               "line": 1884
2026-06-09T03:00:38.4311939Z             },
2026-06-09T03:00:38.4312096Z             {
2026-06-09T03:00:38.4312272Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4312493Z               "line": 1941
2026-06-09T03:00:38.4312668Z             }
2026-06-09T03:00:38.4312832Z           ]
2026-06-09T03:00:38.4312987Z         },
2026-06-09T03:00:38.4313144Z         "int": {
2026-06-09T03:00:38.4313318Z           "complete": false,
2026-06-09T03:00:38.4313519Z           "evidence": []
2026-06-09T03:00:38.4313699Z         },
2026-06-09T03:00:38.4313853Z         "unit": {
2026-06-09T03:00:38.4314367Z           "complete": true,
2026-06-09T03:00:38.4314568Z           "evidence": [
2026-06-09T03:00:38.4314750Z             {
2026-06-09T03:00:38.4314949Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4315197Z               "line": 1071
2026-06-09T03:00:38.4315384Z             }
2026-06-09T03:00:38.4315540Z           ]
2026-06-09T03:00:38.4315697Z         }
2026-06-09T03:00:38.4315852Z       }
2026-06-09T03:00:38.4315999Z     },
2026-06-09T03:00:38.4316152Z     {
2026-06-09T03:00:38.4316314Z       "id": "REQ-DAEMON-1",
2026-06-09T03:00:38.4316576Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-09T03:00:38.4316867Z       "requiredStages": [
2026-06-09T03:00:38.4317135Z         "impl",
2026-06-09T03:00:38.4317298Z         "unit",
2026-06-09T03:00:38.4317458Z         "int"
2026-06-09T03:00:38.4317617Z       ],
2026-06-09T03:00:38.4317773Z       "stages": {
2026-06-09T03:00:38.4317937Z         "doc": {
2026-06-09T03:00:38.4318120Z           "complete": false,
2026-06-09T03:00:38.4318318Z           "evidence": []
2026-06-09T03:00:38.4318497Z         },
2026-06-09T03:00:38.4318660Z         "impl": {
2026-06-09T03:00:38.4318830Z           "complete": true,
2026-06-09T03:00:38.4319022Z           "evidence": [
2026-06-09T03:00:38.4319198Z             {
2026-06-09T03:00:38.4319393Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.4319632Z               "line": 12
2026-06-09T03:00:38.4319804Z             },
2026-06-09T03:00:38.4319970Z             {
2026-06-09T03:00:38.4320172Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4320414Z               "line": 16
2026-06-09T03:00:38.4320586Z             },
2026-06-09T03:00:38.4320748Z             {
2026-06-09T03:00:38.4320943Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-09T03:00:38.4321176Z               "line": 15
2026-06-09T03:00:38.4321349Z             },
2026-06-09T03:00:38.4321513Z             {
2026-06-09T03:00:38.4321707Z               "path": "crates/spt/src/api/live.rs",
2026-06-09T03:00:38.4321941Z               "line": 13
2026-06-09T03:00:38.4322114Z             }
2026-06-09T03:00:38.4322270Z           ]
2026-06-09T03:00:38.4322428Z         },
2026-06-09T03:00:38.4322585Z         "int": {
2026-06-09T03:00:38.4322758Z           "complete": true,
2026-06-09T03:00:38.4322942Z           "evidence": [
2026-06-09T03:00:38.4323120Z             {
2026-06-09T03:00:38.4323324Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T03:00:38.4323604Z               "line": 32
2026-06-09T03:00:38.4323780Z             }
2026-06-09T03:00:38.4323935Z           ]
2026-06-09T03:00:38.4324089Z         },
2026-06-09T03:00:38.4324250Z         "unit": {
2026-06-09T03:00:38.4324417Z           "complete": true,
2026-06-09T03:00:38.4324608Z           "evidence": [
2026-06-09T03:00:38.4324780Z             {
2026-06-09T03:00:38.4324976Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.4325218Z               "line": 285
2026-06-09T03:00:38.4325409Z             },
2026-06-09T03:00:38.4325566Z             {
2026-06-09T03:00:38.4325761Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.4326034Z               "line": 293
2026-06-09T03:00:38.4326218Z             },
2026-06-09T03:00:38.4326379Z             {
2026-06-09T03:00:38.4326579Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.4326811Z               "line": 309
2026-06-09T03:00:38.4327084Z             },
2026-06-09T03:00:38.4327256Z             {
2026-06-09T03:00:38.4327446Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.4327675Z               "line": 317
2026-06-09T03:00:38.4327853Z             },
2026-06-09T03:00:38.4328018Z             {
2026-06-09T03:00:38.4328220Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4328463Z               "line": 565
2026-06-09T03:00:38.4328633Z             },
2026-06-09T03:00:38.4328792Z             {
2026-06-09T03:00:38.4329182Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4329424Z               "line": 635
2026-06-09T03:00:38.4329606Z             },
2026-06-09T03:00:38.4329768Z             {
2026-06-09T03:00:38.4329958Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-09T03:00:38.4330192Z               "line": 104
2026-06-09T03:00:38.4330373Z             },
2026-06-09T03:00:38.4330531Z             {
2026-06-09T03:00:38.4330722Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-09T03:00:38.4330950Z               "line": 129
2026-06-09T03:00:38.4331128Z             }
2026-06-09T03:00:38.4331288Z           ]
2026-06-09T03:00:38.4331522Z         }
2026-06-09T03:00:38.4331755Z       }
2026-06-09T03:00:38.4331981Z     },
2026-06-09T03:00:38.4332177Z     {
2026-06-09T03:00:38.4332344Z       "id": "REQ-DAEMON-2",
2026-06-09T03:00:38.4332582Z       "title": "Broker/brain split for seamless self-update",
2026-06-09T03:00:38.4332854Z       "requiredStages": [
2026-06-09T03:00:38.4333050Z         "impl",
2026-06-09T03:00:38.4333211Z         "unit",
2026-06-09T03:00:38.4333374Z         "int"
2026-06-09T03:00:38.4333536Z       ],
2026-06-09T03:00:38.4333694Z       "stages": {
2026-06-09T03:00:38.4333860Z         "doc": {
2026-06-09T03:00:38.4334032Z           "complete": false,
2026-06-09T03:00:38.4334226Z           "evidence": []
2026-06-09T03:00:38.4334405Z         },
2026-06-09T03:00:38.4334563Z         "impl": {
2026-06-09T03:00:38.4334734Z           "complete": true,
2026-06-09T03:00:38.4334921Z           "evidence": [
2026-06-09T03:00:38.4335100Z             {
2026-06-09T03:00:38.4335292Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4335541Z               "line": 23
2026-06-09T03:00:38.4335716Z             },
2026-06-09T03:00:38.4335875Z             {
2026-06-09T03:00:38.4335992Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4336079Z               "line": 531
2026-06-09T03:00:38.4336165Z             },
2026-06-09T03:00:38.4336256Z             {
2026-06-09T03:00:38.4336364Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4336456Z               "line": 684
2026-06-09T03:00:38.4336538Z             },
2026-06-09T03:00:38.4336626Z             {
2026-06-09T03:00:38.4336735Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4336826Z               "line": 32
2026-06-09T03:00:38.4336906Z             },
2026-06-09T03:00:38.4337110Z             {
2026-06-09T03:00:38.4337231Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4337315Z               "line": 191
2026-06-09T03:00:38.4337410Z             },
2026-06-09T03:00:38.4337488Z             {
2026-06-09T03:00:38.4337606Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4337687Z               "line": 546
2026-06-09T03:00:38.4337778Z             },
2026-06-09T03:00:38.4337869Z             {
2026-06-09T03:00:38.4337987Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4338088Z               "line": 788
2026-06-09T03:00:38.4338174Z             },
2026-06-09T03:00:38.4338264Z             {
2026-06-09T03:00:38.4338374Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T03:00:38.4338617Z               "line": 11
2026-06-09T03:00:38.4338747Z             },
2026-06-09T03:00:38.4338907Z             {
2026-06-09T03:00:38.4339052Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4339203Z               "line": 146
2026-06-09T03:00:38.4339367Z             },
2026-06-09T03:00:38.4339503Z             {
2026-06-09T03:00:38.4339679Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4339794Z               "line": 13
2026-06-09T03:00:38.4339940Z             },
2026-06-09T03:00:38.4340028Z             {
2026-06-09T03:00:38.4340270Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4340414Z               "line": 27
2026-06-09T03:00:38.4340528Z             },
2026-06-09T03:00:38.4340890Z             {
2026-06-09T03:00:38.4341024Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4341214Z               "line": 109
2026-06-09T03:00:38.4341358Z             },
2026-06-09T03:00:38.4341472Z             {
2026-06-09T03:00:38.4341654Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4341758Z               "line": 447
2026-06-09T03:00:38.4341950Z             },
2026-06-09T03:00:38.4342067Z             {
2026-06-09T03:00:38.4342239Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4342394Z               "line": 614
2026-06-09T03:00:38.4342493Z             },
2026-06-09T03:00:38.4342751Z             {
2026-06-09T03:00:38.4342967Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4343118Z               "line": 715
2026-06-09T03:00:38.4343276Z             },
2026-06-09T03:00:38.4343381Z             {
2026-06-09T03:00:38.4343625Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4343747Z               "line": 764
2026-06-09T03:00:38.4343906Z             },
2026-06-09T03:00:38.4344015Z             {
2026-06-09T03:00:38.4344174Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4344368Z               "line": 812
2026-06-09T03:00:38.4344474Z             },
2026-06-09T03:00:38.4344630Z             {
2026-06-09T03:00:38.4344776Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T03:00:38.4344905Z               "line": 10
2026-06-09T03:00:38.4345051Z             }
2026-06-09T03:00:38.4345223Z           ]
2026-06-09T03:00:38.4345394Z         },
2026-06-09T03:00:38.4345510Z         "int": {
2026-06-09T03:00:38.4345642Z           "complete": true,
2026-06-09T03:00:38.4345805Z           "evidence": [
2026-06-09T03:00:38.4345957Z             {
2026-06-09T03:00:38.4346158Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-09T03:00:38.4346272Z               "line": 17
2026-06-09T03:00:38.4346415Z             },
2026-06-09T03:00:38.4346562Z             {
2026-06-09T03:00:38.4346778Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T03:00:38.4346891Z               "line": 33
2026-06-09T03:00:38.4347126Z             },
2026-06-09T03:00:38.4347258Z             {
2026-06-09T03:00:38.4347481Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-09T03:00:38.4347656Z               "line": 19
2026-06-09T03:00:38.4347771Z             },
2026-06-09T03:00:38.4347908Z             {
2026-06-09T03:00:38.4348062Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T03:00:38.4348232Z               "line": 71
2026-06-09T03:00:38.4348400Z             },
2026-06-09T03:00:38.4348500Z             {
2026-06-09T03:00:38.4348682Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T03:00:38.4348791Z               "line": 91
2026-06-09T03:00:38.4348944Z             },
2026-06-09T03:00:38.4349115Z             {
2026-06-09T03:00:38.4349278Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T03:00:38.4349420Z               "line": 167
2026-06-09T03:00:38.4349530Z             },
2026-06-09T03:00:38.4349688Z             {
2026-06-09T03:00:38.4349859Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T03:00:38.4349998Z               "line": 209
2026-06-09T03:00:38.4350134Z             },
2026-06-09T03:00:38.4350234Z             {
2026-06-09T03:00:38.4350449Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-09T03:00:38.4350578Z               "line": 128
2026-06-09T03:00:38.4350716Z             }
2026-06-09T03:00:38.4350859Z           ]
2026-06-09T03:00:38.4350969Z         },
2026-06-09T03:00:38.4351159Z         "unit": {
2026-06-09T03:00:38.4351293Z           "complete": true,
2026-06-09T03:00:38.4351441Z           "evidence": [
2026-06-09T03:00:38.4351547Z             {
2026-06-09T03:00:38.4351722Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T03:00:38.4352017Z               "line": 62
2026-06-09T03:00:38.4352238Z             },
2026-06-09T03:00:38.4352375Z             {
2026-06-09T03:00:38.4352539Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T03:00:38.4352684Z               "line": 76
2026-06-09T03:00:38.4352779Z             },
2026-06-09T03:00:38.4352973Z             {
2026-06-09T03:00:38.4353145Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T03:00:38.4353269Z               "line": 88
2026-06-09T03:00:38.4353407Z             },
2026-06-09T03:00:38.4353503Z             {
2026-06-09T03:00:38.4353731Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T03:00:38.4353889Z               "line": 294
2026-06-09T03:00:38.4353998Z             },
2026-06-09T03:00:38.4354137Z             {
2026-06-09T03:00:38.4354260Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4354452Z               "line": 583
2026-06-09T03:00:38.4354565Z             },
2026-06-09T03:00:38.4354719Z             {
2026-06-09T03:00:38.4354899Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4355005Z               "line": 591
2026-06-09T03:00:38.4355199Z             },
2026-06-09T03:00:38.4355327Z             {
2026-06-09T03:00:38.4355493Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4355606Z               "line": 608
2026-06-09T03:00:38.4355731Z             },
2026-06-09T03:00:38.4355921Z             {
2026-06-09T03:00:38.4356070Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4356216Z               "line": 662
2026-06-09T03:00:38.4356337Z             },
2026-06-09T03:00:38.4356460Z             {
2026-06-09T03:00:38.4356694Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4356809Z               "line": 883
2026-06-09T03:00:38.4357038Z             },
2026-06-09T03:00:38.4357156Z             {
2026-06-09T03:00:38.4357334Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4357494Z               "line": 895
2026-06-09T03:00:38.4357672Z             },
2026-06-09T03:00:38.4357813Z             {
2026-06-09T03:00:38.4357961Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T03:00:38.4358092Z               "line": 110
2026-06-09T03:00:38.4358240Z             }
2026-06-09T03:00:38.4358407Z           ]
2026-06-09T03:00:38.4358550Z         }
2026-06-09T03:00:38.4358660Z       }
2026-06-09T03:00:38.4358797Z     },
2026-06-09T03:00:38.4358965Z     {
2026-06-09T03:00:38.4359126Z       "id": "REQ-DAEMON-3",
2026-06-09T03:00:38.4359308Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-09T03:00:38.4359461Z       "requiredStages": [
2026-06-09T03:00:38.4359595Z         "impl",
2026-06-09T03:00:38.4359751Z         "unit",
2026-06-09T03:00:38.4359910Z         "int"
2026-06-09T03:00:38.4360018Z       ],
2026-06-09T03:00:38.4360162Z       "stages": {
2026-06-09T03:00:38.4360271Z         "doc": {
2026-06-09T03:00:38.4360473Z           "complete": false,
2026-06-09T03:00:38.4360647Z           "evidence": []
2026-06-09T03:00:38.4360761Z         },
2026-06-09T03:00:38.4360900Z         "impl": {
2026-06-09T03:00:38.4361033Z           "complete": true,
2026-06-09T03:00:38.4361205Z           "evidence": [
2026-06-09T03:00:38.4361328Z             {
2026-06-09T03:00:38.4361510Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4361653Z               "line": 14
2026-06-09T03:00:38.4361778Z             },
2026-06-09T03:00:38.4361948Z             {
2026-06-09T03:00:38.4362112Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-09T03:00:38.4362254Z               "line": 11
2026-06-09T03:00:38.4362412Z             },
2026-06-09T03:00:38.4362521Z             {
2026-06-09T03:00:38.4362712Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.4362845Z               "line": 247
2026-06-09T03:00:38.4362983Z             },
2026-06-09T03:00:38.4363090Z             {
2026-06-09T03:00:38.4363373Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4363834Z               "line": 1259
2026-06-09T03:00:38.4364010Z             },
2026-06-09T03:00:38.4364196Z             {
2026-06-09T03:00:38.4364330Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4364491Z               "line": 2812
2026-06-09T03:00:38.4364640Z             },
2026-06-09T03:00:38.4364802Z             {
2026-06-09T03:00:38.4364979Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4365097Z               "line": 2833
2026-06-09T03:00:38.4365226Z             }
2026-06-09T03:00:38.4365369Z           ]
2026-06-09T03:00:38.4365540Z         },
2026-06-09T03:00:38.4365684Z         "int": {
2026-06-09T03:00:38.4365811Z           "complete": true,
2026-06-09T03:00:38.4365959Z           "evidence": [
2026-06-09T03:00:38.4366123Z             {
2026-06-09T03:00:38.4366330Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.4366438Z               "line": 46
2026-06-09T03:00:38.4366582Z             },
2026-06-09T03:00:38.4366729Z             {
2026-06-09T03:00:38.4366916Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.4367217Z               "line": 435
2026-06-09T03:00:38.4367349Z             }
2026-06-09T03:00:38.4367497Z           ]
2026-06-09T03:00:38.4367631Z         },
2026-06-09T03:00:38.4367846Z         "unit": {
2026-06-09T03:00:38.4367978Z           "complete": true,
2026-06-09T03:00:38.4368131Z           "evidence": [
2026-06-09T03:00:38.4368232Z             {
2026-06-09T03:00:38.4368458Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4368592Z               "line": 664
2026-06-09T03:00:38.4368728Z             },
2026-06-09T03:00:38.4368872Z             {
2026-06-09T03:00:38.4369048Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4369211Z               "line": 7219
2026-06-09T03:00:38.4369338Z             }
2026-06-09T03:00:38.4369483Z           ]
2026-06-09T03:00:38.4369611Z         }
2026-06-09T03:00:38.4369764Z       }
2026-06-09T03:00:38.4369935Z     },
2026-06-09T03:00:38.4370059Z     {
2026-06-09T03:00:38.4370216Z       "id": "REQ-DAEMON-4",
2026-06-09T03:00:38.4370364Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-09T03:00:38.4370544Z       "requiredStages": [
2026-06-09T03:00:38.4370698Z         "impl",
2026-06-09T03:00:38.4383683Z         "unit",
2026-06-09T03:00:38.4383838Z         "int"
2026-06-09T03:00:38.4384026Z       ],
2026-06-09T03:00:38.4384162Z       "stages": {
2026-06-09T03:00:38.4384327Z         "doc": {
2026-06-09T03:00:38.4384450Z           "complete": false,
2026-06-09T03:00:38.4384606Z           "evidence": []
2026-06-09T03:00:38.4384782Z         },
2026-06-09T03:00:38.4384926Z         "impl": {
2026-06-09T03:00:38.4385072Z           "complete": true,
2026-06-09T03:00:38.4385197Z           "evidence": [
2026-06-09T03:00:38.4385334Z             {
2026-06-09T03:00:38.4385489Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4385707Z               "line": 371
2026-06-09T03:00:38.4385879Z             },
2026-06-09T03:00:38.4385988Z             {
2026-06-09T03:00:38.4386174Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4386279Z               "line": 436
2026-06-09T03:00:38.4386485Z             },
2026-06-09T03:00:38.4386627Z             {
2026-06-09T03:00:38.4386776Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4386922Z               "line": 458
2026-06-09T03:00:38.4387131Z             }
2026-06-09T03:00:38.4387353Z           ]
2026-06-09T03:00:38.4387478Z         },
2026-06-09T03:00:38.4387644Z         "int": {
2026-06-09T03:00:38.4387793Z           "complete": true,
2026-06-09T03:00:38.4387897Z           "evidence": [
2026-06-09T03:00:38.4388103Z             {
2026-06-09T03:00:38.4388259Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T03:00:38.4388403Z               "line": 34
2026-06-09T03:00:38.4388512Z             }
2026-06-09T03:00:38.4388656Z           ]
2026-06-09T03:00:38.4389089Z         },
2026-06-09T03:00:38.4389208Z         "unit": {
2026-06-09T03:00:38.4389376Z           "complete": true,
2026-06-09T03:00:38.4389493Z           "evidence": [
2026-06-09T03:00:38.4389627Z             {
2026-06-09T03:00:38.4389872Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.4389993Z               "line": 428
2026-06-09T03:00:38.4390148Z             },
2026-06-09T03:00:38.4390254Z             {
2026-06-09T03:00:38.4390421Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4390569Z               "line": 784
2026-06-09T03:00:38.4390722Z             },
2026-06-09T03:00:38.4390884Z             {
2026-06-09T03:00:38.4391026Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4391160Z               "line": 854
2026-06-09T03:00:38.4391304Z             },
2026-06-09T03:00:38.4391460Z             {
2026-06-09T03:00:38.4391628Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4391799Z               "line": 884
2026-06-09T03:00:38.4391933Z             },
2026-06-09T03:00:38.4392085Z             {
2026-06-09T03:00:38.4392290Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4392408Z               "line": 917
2026-06-09T03:00:38.4392552Z             }
2026-06-09T03:00:38.4392675Z           ]
2026-06-09T03:00:38.4392828Z         }
2026-06-09T03:00:38.4392995Z       }
2026-06-09T03:00:38.4393104Z     },
2026-06-09T03:00:38.4393243Z     {
2026-06-09T03:00:38.4393366Z       "id": "REQ-DAEMON-5",
2026-06-09T03:00:38.4401934Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-09T03:00:38.4402084Z       "requiredStages": [
2026-06-09T03:00:38.4402183Z         "impl",
2026-06-09T03:00:38.4402268Z         "unit"
2026-06-09T03:00:38.4402359Z       ],
2026-06-09T03:00:38.4402450Z       "stages": {
2026-06-09T03:00:38.4402535Z         "doc": {
2026-06-09T03:00:38.4402636Z           "complete": false,
2026-06-09T03:00:38.4402728Z           "evidence": []
2026-06-09T03:00:38.4402822Z         },
2026-06-09T03:00:38.4402907Z         "impl": {
2026-06-09T03:00:38.4403001Z           "complete": true,
2026-06-09T03:00:38.4403088Z           "evidence": [
2026-06-09T03:00:38.4403174Z             {
2026-06-09T03:00:38.4403311Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4403403Z               "line": 323
2026-06-09T03:00:38.4403489Z             },
2026-06-09T03:00:38.4403574Z             {
2026-06-09T03:00:38.4403708Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4403798Z               "line": 724
2026-06-09T03:00:38.4403898Z             },
2026-06-09T03:00:38.4403989Z             {
2026-06-09T03:00:38.4404108Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4404199Z               "line": 737
2026-06-09T03:00:38.4404280Z             },
2026-06-09T03:00:38.4404361Z             {
2026-06-09T03:00:38.4404479Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4404570Z               "line": 755
2026-06-09T03:00:38.4404657Z             },
2026-06-09T03:00:38.4404738Z             {
2026-06-09T03:00:38.4404861Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4404948Z               "line": 796
2026-06-09T03:00:38.4405039Z             }
2026-06-09T03:00:38.4405123Z           ]
2026-06-09T03:00:38.4405209Z         },
2026-06-09T03:00:38.4405301Z         "int": {
2026-06-09T03:00:38.4405396Z           "complete": false,
2026-06-09T03:00:38.4405490Z           "evidence": []
2026-06-09T03:00:38.4405575Z         },
2026-06-09T03:00:38.4405806Z         "unit": {
2026-06-09T03:00:38.4406031Z           "complete": true,
2026-06-09T03:00:38.4406121Z           "evidence": [
2026-06-09T03:00:38.4406212Z             {
2026-06-09T03:00:38.4406332Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4406427Z               "line": 916
2026-06-09T03:00:38.4406508Z             },
2026-06-09T03:00:38.4406599Z             {
2026-06-09T03:00:38.4406728Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4406813Z               "line": 940
2026-06-09T03:00:38.4406904Z             },
2026-06-09T03:00:38.4407318Z             {
2026-06-09T03:00:38.4407471Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4407563Z               "line": 966
2026-06-09T03:00:38.4407652Z             }
2026-06-09T03:00:38.4407738Z           ]
2026-06-09T03:00:38.4407825Z         }
2026-06-09T03:00:38.4407911Z       }
2026-06-09T03:00:38.4407995Z     },
2026-06-09T03:00:38.4408080Z     {
2026-06-09T03:00:38.4408204Z       "id": "REQ-DAEMON-6",
2026-06-09T03:00:38.4410158Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-09T03:00:38.4410262Z       "requiredStages": [
2026-06-09T03:00:38.4410347Z         "impl",
2026-06-09T03:00:38.4410435Z         "unit"
2026-06-09T03:00:38.4410524Z       ],
2026-06-09T03:00:38.4410609Z       "stages": {
2026-06-09T03:00:38.4410699Z         "doc": {
2026-06-09T03:00:38.4410799Z           "complete": false,
2026-06-09T03:00:38.4410907Z           "evidence": []
2026-06-09T03:00:38.4410987Z         },
2026-06-09T03:00:38.4411079Z         "impl": {
2026-06-09T03:00:38.4411175Z           "complete": true,
2026-06-09T03:00:38.4411260Z           "evidence": [
2026-06-09T03:00:38.4411346Z             {
2026-06-09T03:00:38.4411470Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4411565Z               "line": 343
2026-06-09T03:00:38.4411646Z             },
2026-06-09T03:00:38.4411732Z             {
2026-06-09T03:00:38.4411861Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4411946Z               "line": 365
2026-06-09T03:00:38.4412033Z             },
2026-06-09T03:00:38.4412113Z             {
2026-06-09T03:00:38.4412232Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4412324Z               "line": 55
2026-06-09T03:00:38.4412410Z             },
2026-06-09T03:00:38.4412494Z             {
2026-06-09T03:00:38.4412624Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4412719Z               "line": 70
2026-06-09T03:00:38.4412805Z             },
2026-06-09T03:00:38.4412890Z             {
2026-06-09T03:00:38.4412997Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4413095Z               "line": 1289
2026-06-09T03:00:38.4413186Z             },
2026-06-09T03:00:38.4413268Z             {
2026-06-09T03:00:38.4413373Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4413467Z               "line": 1315
2026-06-09T03:00:38.4413552Z             }
2026-06-09T03:00:38.4413643Z           ]
2026-06-09T03:00:38.4413729Z         },
2026-06-09T03:00:38.4413819Z         "int": {
2026-06-09T03:00:38.4413910Z           "complete": false,
2026-06-09T03:00:38.4414002Z           "evidence": []
2026-06-09T03:00:38.4414082Z         },
2026-06-09T03:00:38.4414176Z         "unit": {
2026-06-09T03:00:38.4414264Z           "complete": true,
2026-06-09T03:00:38.4414515Z           "evidence": [
2026-06-09T03:00:38.4414697Z             {
2026-06-09T03:00:38.4414815Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4414907Z               "line": 273
2026-06-09T03:00:38.4414997Z             },
2026-06-09T03:00:38.4415083Z             {
2026-06-09T03:00:38.4415198Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4415289Z               "line": 284
2026-06-09T03:00:38.4415378Z             },
2026-06-09T03:00:38.4415464Z             {
2026-06-09T03:00:38.4415580Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4415665Z               "line": 309
2026-06-09T03:00:38.4415755Z             }
2026-06-09T03:00:38.4415890Z           ]
2026-06-09T03:00:38.4415974Z         }
2026-06-09T03:00:38.4416064Z       }
2026-06-09T03:00:38.4416145Z     },
2026-06-09T03:00:38.4416236Z     {
2026-06-09T03:00:38.4416325Z       "id": "REQ-DAEMON-7",
2026-06-09T03:00:38.4417784Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-09T03:00:38.4417893Z       "requiredStages": [
2026-06-09T03:00:38.4417978Z         "impl",
2026-06-09T03:00:38.4418065Z         "unit"
2026-06-09T03:00:38.4418147Z       ],
2026-06-09T03:00:38.4418235Z       "stages": {
2026-06-09T03:00:38.4418322Z         "doc": {
2026-06-09T03:00:38.4418414Z           "complete": false,
2026-06-09T03:00:38.4418504Z           "evidence": []
2026-06-09T03:00:38.4418588Z         },
2026-06-09T03:00:38.4418673Z         "impl": {
2026-06-09T03:00:38.4418764Z           "complete": true,
2026-06-09T03:00:38.4418858Z           "evidence": [
2026-06-09T03:00:38.4418957Z             {
2026-06-09T03:00:38.4419082Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4419173Z               "line": 384
2026-06-09T03:00:38.4419258Z             },
2026-06-09T03:00:38.4419344Z             {
2026-06-09T03:00:38.4419458Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4419553Z               "line": 86
2026-06-09T03:00:38.4419639Z             },
2026-06-09T03:00:38.4419722Z             {
2026-06-09T03:00:38.4419826Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4419916Z               "line": 1260
2026-06-09T03:00:38.4420002Z             }
2026-06-09T03:00:38.4420083Z           ]
2026-06-09T03:00:38.4420174Z         },
2026-06-09T03:00:38.4420264Z         "int": {
2026-06-09T03:00:38.4420356Z           "complete": false,
2026-06-09T03:00:38.4420445Z           "evidence": []
2026-06-09T03:00:38.4420526Z         },
2026-06-09T03:00:38.4420617Z         "unit": {
2026-06-09T03:00:38.4420713Z           "complete": true,
2026-06-09T03:00:38.4420817Z           "evidence": [
2026-06-09T03:00:38.4420908Z             {
2026-06-09T03:00:38.4421019Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4421112Z               "line": 299
2026-06-09T03:00:38.4421193Z             },
2026-06-09T03:00:38.4421283Z             {
2026-06-09T03:00:38.4421383Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4421477Z               "line": 5175
2026-06-09T03:00:38.4421567Z             }
2026-06-09T03:00:38.4421649Z           ]
2026-06-09T03:00:38.4421739Z         }
2026-06-09T03:00:38.4421829Z       }
2026-06-09T03:00:38.4421915Z     },
2026-06-09T03:00:38.4421997Z     {
2026-06-09T03:00:38.4422096Z       "id": "REQ-DAEMON-8",
2026-06-09T03:00:38.4423131Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-09T03:00:38.4423308Z       "requiredStages": [
2026-06-09T03:00:38.4423398Z         "impl",
2026-06-09T03:00:38.4423484Z         "unit"
2026-06-09T03:00:38.4423571Z       ],
2026-06-09T03:00:38.4423660Z       "stages": {
2026-06-09T03:00:38.4423746Z         "doc": {
2026-06-09T03:00:38.4423848Z           "complete": false,
2026-06-09T03:00:38.4423937Z           "evidence": []
2026-06-09T03:00:38.4424032Z         },
2026-06-09T03:00:38.4424117Z         "impl": {
2026-06-09T03:00:38.4424208Z           "complete": true,
2026-06-09T03:00:38.4424299Z           "evidence": [
2026-06-09T03:00:38.4424384Z             {
2026-06-09T03:00:38.4424499Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4424590Z               "line": 302
2026-06-09T03:00:38.4424675Z             },
2026-06-09T03:00:38.4424756Z             {
2026-06-09T03:00:38.4424885Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4424980Z               "line": 56
2026-06-09T03:00:38.4425065Z             }
2026-06-09T03:00:38.4425148Z           ]
2026-06-09T03:00:38.4425233Z         },
2026-06-09T03:00:38.4425319Z         "int": {
2026-06-09T03:00:38.4425405Z           "complete": false,
2026-06-09T03:00:38.4425491Z           "evidence": []
2026-06-09T03:00:38.4425581Z         },
2026-06-09T03:00:38.4425667Z         "unit": {
2026-06-09T03:00:38.4425763Z           "complete": true,
2026-06-09T03:00:38.4425849Z           "evidence": [
2026-06-09T03:00:38.4425938Z             {
2026-06-09T03:00:38.4426049Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T03:00:38.4426140Z               "line": 273
2026-06-09T03:00:38.4426229Z             }
2026-06-09T03:00:38.4426311Z           ]
2026-06-09T03:00:38.4426398Z         }
2026-06-09T03:00:38.4426483Z       }
2026-06-09T03:00:38.4426568Z     },
2026-06-09T03:00:38.4426653Z     {
2026-06-09T03:00:38.4426753Z       "id": "REQ-DOCS-1",
2026-06-09T03:00:38.4427032Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-09T03:00:38.4427142Z       "requiredStages": [
2026-06-09T03:00:38.4427228Z         "doc",
2026-06-09T03:00:38.4427323Z         "impl"
2026-06-09T03:00:38.4427414Z       ],
2026-06-09T03:00:38.4427500Z       "stages": {
2026-06-09T03:00:38.4427585Z         "doc": {
2026-06-09T03:00:38.4427681Z           "complete": true,
2026-06-09T03:00:38.4427767Z           "evidence": [
2026-06-09T03:00:38.4427852Z             {
2026-06-09T03:00:38.4427962Z               "path": "docs-site/src/index.md",
2026-06-09T03:00:38.4428048Z               "line": 50
2026-06-09T03:00:38.4428138Z             }
2026-06-09T03:00:38.4428243Z           ]
2026-06-09T03:00:38.4428330Z         },
2026-06-09T03:00:38.4428415Z         "impl": {
2026-06-09T03:00:38.4428506Z           "complete": true,
2026-06-09T03:00:38.4428596Z           "evidence": [
2026-06-09T03:00:38.4428683Z             {
2026-06-09T03:00:38.4428825Z               "path": ".github/workflows/docs-publish.yml",
2026-06-09T03:00:38.4428921Z               "line": 12
2026-06-09T03:00:38.4429017Z             },
2026-06-09T03:00:38.4429106Z             {
2026-06-09T03:00:38.4429220Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.4429305Z               "line": 14
2026-06-09T03:00:38.4429396Z             }
2026-06-09T03:00:38.4429475Z           ]
2026-06-09T03:00:38.4429565Z         },
2026-06-09T03:00:38.4429657Z         "int": {
2026-06-09T03:00:38.4429752Z           "complete": false,
2026-06-09T03:00:38.4429842Z           "evidence": []
2026-06-09T03:00:38.4429923Z         },
2026-06-09T03:00:38.4430019Z         "unit": {
2026-06-09T03:00:38.4430113Z           "complete": false,
2026-06-09T03:00:38.4430199Z           "evidence": []
2026-06-09T03:00:38.4430286Z         }
2026-06-09T03:00:38.4430366Z       }
2026-06-09T03:00:38.4430452Z     },
2026-06-09T03:00:38.4430533Z     {
2026-06-09T03:00:38.4430625Z       "id": "REQ-DOCS-2",
2026-06-09T03:00:38.4430968Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-09T03:00:38.4431068Z       "requiredStages": [
2026-06-09T03:00:38.4431153Z         "doc",
2026-06-09T03:00:38.4431235Z         "int"
2026-06-09T03:00:38.4431320Z       ],
2026-06-09T03:00:38.4431406Z       "stages": {
2026-06-09T03:00:38.4431487Z         "doc": {
2026-06-09T03:00:38.4431574Z           "complete": true,
2026-06-09T03:00:38.4431667Z           "evidence": [
2026-06-09T03:00:38.4431758Z             {
2026-06-09T03:00:38.4431882Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-09T03:00:38.4431971Z               "line": 3
2026-06-09T03:00:38.4432051Z             },
2026-06-09T03:00:38.4432137Z             {
2026-06-09T03:00:38.4432262Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-09T03:00:38.4432351Z               "line": 3
2026-06-09T03:00:38.4432436Z             }
2026-06-09T03:00:38.4432529Z           ]
2026-06-09T03:00:38.4432610Z         },
2026-06-09T03:00:38.4432708Z         "impl": {
2026-06-09T03:00:38.4432800Z           "complete": false,
2026-06-09T03:00:38.4432886Z           "evidence": []
2026-06-09T03:00:38.4432971Z         },
2026-06-09T03:00:38.4433062Z         "int": {
2026-06-09T03:00:38.4433154Z           "complete": true,
2026-06-09T03:00:38.4433248Z           "evidence": [
2026-06-09T03:00:38.4433328Z             {
2026-06-09T03:00:38.4433454Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T03:00:38.4433539Z               "line": 14
2026-06-09T03:00:38.4433624Z             }
2026-06-09T03:00:38.4433710Z           ]
2026-06-09T03:00:38.4433793Z         },
2026-06-09T03:00:38.4433877Z         "unit": {
2026-06-09T03:00:38.4433968Z           "complete": false,
2026-06-09T03:00:38.4434054Z           "evidence": []
2026-06-09T03:00:38.4434136Z         }
2026-06-09T03:00:38.4434220Z       }
2026-06-09T03:00:38.4434306Z     },
2026-06-09T03:00:38.4434389Z     {
2026-06-09T03:00:38.4434488Z       "id": "REQ-DOCS-3",
2026-06-09T03:00:38.4434710Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-09T03:00:38.4434802Z       "requiredStages": [
2026-06-09T03:00:38.4434887Z         "doc"
2026-06-09T03:00:38.4434972Z       ],
2026-06-09T03:00:38.4435059Z       "stages": {
2026-06-09T03:00:38.4435145Z         "doc": {
2026-06-09T03:00:38.4435240Z           "complete": true,
2026-06-09T03:00:38.4435326Z           "evidence": [
2026-06-09T03:00:38.4435417Z             {
2026-06-09T03:00:38.4435522Z               "path": "docs-site/src/index.md",
2026-06-09T03:00:38.4435611Z               "line": 42
2026-06-09T03:00:38.4435699Z             }
2026-06-09T03:00:38.4435784Z           ]
2026-06-09T03:00:38.4435865Z         },
2026-06-09T03:00:38.4435950Z         "impl": {
2026-06-09T03:00:38.4436042Z           "complete": false,
2026-06-09T03:00:38.4436127Z           "evidence": []
2026-06-09T03:00:38.4436213Z         },
2026-06-09T03:00:38.4436294Z         "int": {
2026-06-09T03:00:38.4436390Z           "complete": false,
2026-06-09T03:00:38.4436498Z           "evidence": []
2026-06-09T03:00:38.4436575Z         },
2026-06-09T03:00:38.4436662Z         "unit": {
2026-06-09T03:00:38.4436752Z           "complete": false,
2026-06-09T03:00:38.4436836Z           "evidence": []
2026-06-09T03:00:38.4436909Z         }
2026-06-09T03:00:38.4437099Z       }
2026-06-09T03:00:38.4437193Z     },
2026-06-09T03:00:38.4437284Z     {
2026-06-09T03:00:38.4437384Z       "id": "REQ-DOCS-4",
2026-06-09T03:00:38.4437568Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-09T03:00:38.4437665Z       "requiredStages": [
2026-06-09T03:00:38.4437750Z         "doc",
2026-06-09T03:00:38.4437844Z         "impl",
2026-06-09T03:00:38.4437936Z         "unit"
2026-06-09T03:00:38.4438027Z       ],
2026-06-09T03:00:38.4438112Z       "stages": {
2026-06-09T03:00:38.4438198Z         "doc": {
2026-06-09T03:00:38.4438294Z           "complete": true,
2026-06-09T03:00:38.4438383Z           "evidence": [
2026-06-09T03:00:38.4438675Z             {
2026-06-09T03:00:38.4438793Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-09T03:00:38.4438880Z               "line": 35
2026-06-09T03:00:38.4438966Z             }
2026-06-09T03:00:38.4439041Z           ]
2026-06-09T03:00:38.4439127Z         },
2026-06-09T03:00:38.4439215Z         "impl": {
2026-06-09T03:00:38.4439314Z           "complete": true,
2026-06-09T03:00:38.4439405Z           "evidence": [
2026-06-09T03:00:38.4439490Z             {
2026-06-09T03:00:38.4439615Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4439699Z               "line": 522
2026-06-09T03:00:38.4439784Z             },
2026-06-09T03:00:38.4439870Z             {
2026-06-09T03:00:38.4439978Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.4440068Z               "line": 15
2026-06-09T03:00:38.4440149Z             }
2026-06-09T03:00:38.4440236Z           ]
2026-06-09T03:00:38.4440317Z         },
2026-06-09T03:00:38.4440416Z         "int": {
2026-06-09T03:00:38.4440522Z           "complete": false,
2026-06-09T03:00:38.4440617Z           "evidence": []
2026-06-09T03:00:38.4440706Z         },
2026-06-09T03:00:38.4440788Z         "unit": {
2026-06-09T03:00:38.4440889Z           "complete": true,
2026-06-09T03:00:38.4440975Z           "evidence": [
2026-06-09T03:00:38.4441060Z             {
2026-06-09T03:00:38.4441175Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4441270Z               "line": 978
2026-06-09T03:00:38.4441355Z             }
2026-06-09T03:00:38.4441443Z           ]
2026-06-09T03:00:38.4441528Z         }
2026-06-09T03:00:38.4441613Z       }
2026-06-09T03:00:38.4441699Z     },
2026-06-09T03:00:38.4441781Z     {
2026-06-09T03:00:38.4441876Z       "id": "REQ-DOCS-5",
2026-06-09T03:00:38.4442062Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-09T03:00:38.4442153Z       "requiredStages": [
2026-06-09T03:00:38.4442242Z         "impl",
2026-06-09T03:00:38.4442327Z         "int"
2026-06-09T03:00:38.4442432Z       ],
2026-06-09T03:00:38.4442517Z       "stages": {
2026-06-09T03:00:38.4442602Z         "doc": {
2026-06-09T03:00:38.4442701Z           "complete": false,
2026-06-09T03:00:38.4442788Z           "evidence": []
2026-06-09T03:00:38.4442879Z         },
2026-06-09T03:00:38.4442964Z         "impl": {
2026-06-09T03:00:38.4443059Z           "complete": true,
2026-06-09T03:00:38.4443145Z           "evidence": [
2026-06-09T03:00:38.4443235Z             {
2026-06-09T03:00:38.4443360Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4443446Z               "line": 523
2026-06-09T03:00:38.4443541Z             },
2026-06-09T03:00:38.4443627Z             {
2026-06-09T03:00:38.4443738Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.4443822Z               "line": 113
2026-06-09T03:00:38.4443912Z             }
2026-06-09T03:00:38.4443999Z           ]
2026-06-09T03:00:38.4444081Z         },
2026-06-09T03:00:38.4444175Z         "int": {
2026-06-09T03:00:38.4444280Z           "complete": true,
2026-06-09T03:00:38.4444377Z           "evidence": [
2026-06-09T03:00:38.4444461Z             {
2026-06-09T03:00:38.4444571Z               "path": ".github/workflows/ci.yml",
2026-06-09T03:00:38.4444663Z               "line": 86
2026-06-09T03:00:38.4444748Z             },
2026-06-09T03:00:38.4444837Z             {
2026-06-09T03:00:38.4444949Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4445044Z               "line": 1015
2026-06-09T03:00:38.4445128Z             }
2026-06-09T03:00:38.4445213Z           ]
2026-06-09T03:00:38.4445299Z         },
2026-06-09T03:00:38.4445381Z         "unit": {
2026-06-09T03:00:38.4445480Z           "complete": false,
2026-06-09T03:00:38.4445566Z           "evidence": []
2026-06-09T03:00:38.4445653Z         }
2026-06-09T03:00:38.4445734Z       }
2026-06-09T03:00:38.4445819Z     },
2026-06-09T03:00:38.4445915Z     {
2026-06-09T03:00:38.4446001Z       "id": "REQ-DOCS-6",
2026-06-09T03:00:38.4446510Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-09T03:00:38.4446607Z       "requiredStages": [
2026-06-09T03:00:38.4446697Z         "impl",
2026-06-09T03:00:38.4446787Z         "unit",
2026-06-09T03:00:38.4446869Z         "int"
2026-06-09T03:00:38.4447016Z       ],
2026-06-09T03:00:38.4447135Z       "stages": {
2026-06-09T03:00:38.4447269Z         "doc": {
2026-06-09T03:00:38.4447401Z           "complete": true,
2026-06-09T03:00:38.4447503Z           "evidence": [
2026-06-09T03:00:38.4447584Z             {
2026-06-09T03:00:38.4447721Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-09T03:00:38.4447811Z               "line": 4
2026-06-09T03:00:38.4447888Z             }
2026-06-09T03:00:38.4447977Z           ]
2026-06-09T03:00:38.4448057Z         },
2026-06-09T03:00:38.4448143Z         "impl": {
2026-06-09T03:00:38.4448234Z           "complete": true,
2026-06-09T03:00:38.4448334Z           "evidence": [
2026-06-09T03:00:38.4448433Z             {
2026-06-09T03:00:38.4448534Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4448625Z               "line": 3689
2026-06-09T03:00:38.4448710Z             }
2026-06-09T03:00:38.4448801Z           ]
2026-06-09T03:00:38.4448882Z         },
2026-06-09T03:00:38.4448972Z         "int": {
2026-06-09T03:00:38.4449067Z           "complete": true,
2026-06-09T03:00:38.4449155Z           "evidence": [
2026-06-09T03:00:38.4449249Z             {
2026-06-09T03:00:38.4449368Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T03:00:38.4449465Z               "line": 34
2026-06-09T03:00:38.4449549Z             }
2026-06-09T03:00:38.4449631Z           ]
2026-06-09T03:00:38.4449721Z         },
2026-06-09T03:00:38.4449803Z         "unit": {
2026-06-09T03:00:38.4449902Z           "complete": true,
2026-06-09T03:00:38.4449988Z           "evidence": [
2026-06-09T03:00:38.4450075Z             {
2026-06-09T03:00:38.4450184Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4450282Z               "line": 7246
2026-06-09T03:00:38.4450368Z             }
2026-06-09T03:00:38.4450454Z           ]
2026-06-09T03:00:38.4450538Z         }
2026-06-09T03:00:38.4450623Z       }
2026-06-09T03:00:38.4450714Z     },
2026-06-09T03:00:38.4450796Z     {
2026-06-09T03:00:38.4450895Z       "id": "REQ-EP-1",
2026-06-09T03:00:38.4451024Z       "title": "Day-one endpoint types; open type system",
2026-06-09T03:00:38.4451120Z       "requiredStages": [
2026-06-09T03:00:38.4451210Z         "impl",
2026-06-09T03:00:38.4451291Z         "unit"
2026-06-09T03:00:38.4451378Z       ],
2026-06-09T03:00:38.4451464Z       "stages": {
2026-06-09T03:00:38.4451558Z         "doc": {
2026-06-09T03:00:38.4451653Z           "complete": false,
2026-06-09T03:00:38.4451745Z           "evidence": []
2026-06-09T03:00:38.4451830Z         },
2026-06-09T03:00:38.4451915Z         "impl": {
2026-06-09T03:00:38.4452008Z           "complete": true,
2026-06-09T03:00:38.4452107Z           "evidence": [
2026-06-09T03:00:38.4452197Z             {
2026-06-09T03:00:38.4452322Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4452408Z               "line": 77
2026-06-09T03:00:38.4452497Z             },
2026-06-09T03:00:38.4452579Z             {
2026-06-09T03:00:38.4452699Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4452784Z               "line": 94
2026-06-09T03:00:38.4452873Z             }
2026-06-09T03:00:38.4452959Z           ]
2026-06-09T03:00:38.4453040Z         },
2026-06-09T03:00:38.4453129Z         "int": {
2026-06-09T03:00:38.4453219Z           "complete": false,
2026-06-09T03:00:38.4453309Z           "evidence": []
2026-06-09T03:00:38.4453387Z         },
2026-06-09T03:00:38.4453485Z         "unit": {
2026-06-09T03:00:38.4453581Z           "complete": true,
2026-06-09T03:00:38.4453668Z           "evidence": [
2026-06-09T03:00:38.4453759Z             {
2026-06-09T03:00:38.4453973Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4454153Z               "line": 161
2026-06-09T03:00:38.4454235Z             },
2026-06-09T03:00:38.4454331Z             {
2026-06-09T03:00:38.4454449Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4454535Z               "line": 178
2026-06-09T03:00:38.4454627Z             }
2026-06-09T03:00:38.4454706Z           ]
2026-06-09T03:00:38.4454802Z         }
2026-06-09T03:00:38.4454889Z       }
2026-06-09T03:00:38.4454974Z     },
2026-06-09T03:00:38.4455064Z     {
2026-06-09T03:00:38.4455150Z       "id": "REQ-EP-2",
2026-06-09T03:00:38.4455313Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-09T03:00:38.4455402Z       "requiredStages": [
2026-06-09T03:00:38.4455489Z         "impl",
2026-06-09T03:00:38.4455576Z         "unit"
2026-06-09T03:00:38.4455660Z       ],
2026-06-09T03:00:38.4455750Z       "stages": {
2026-06-09T03:00:38.4455841Z         "doc": {
2026-06-09T03:00:38.4455937Z           "complete": false,
2026-06-09T03:00:38.4456031Z           "evidence": []
2026-06-09T03:00:38.4456121Z         },
2026-06-09T03:00:38.4456209Z         "impl": {
2026-06-09T03:00:38.4456304Z           "complete": true,
2026-06-09T03:00:38.4456393Z           "evidence": [
2026-06-09T03:00:38.4456475Z             {
2026-06-09T03:00:38.4456589Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4456684Z               "line": 114
2026-06-09T03:00:38.4456775Z             },
2026-06-09T03:00:38.4456857Z             {
2026-06-09T03:00:38.4457056Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4457167Z               "line": 131
2026-06-09T03:00:38.4457261Z             },
2026-06-09T03:00:38.4457352Z             {
2026-06-09T03:00:38.4457463Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4457552Z               "line": 138
2026-06-09T03:00:38.4457638Z             }
2026-06-09T03:00:38.4457719Z           ]
2026-06-09T03:00:38.4457806Z         },
2026-06-09T03:00:38.4457914Z         "int": {
2026-06-09T03:00:38.4458010Z           "complete": false,
2026-06-09T03:00:38.4458097Z           "evidence": []
2026-06-09T03:00:38.4458182Z         },
2026-06-09T03:00:38.4458267Z         "unit": {
2026-06-09T03:00:38.4458361Z           "complete": true,
2026-06-09T03:00:38.4458453Z           "evidence": [
2026-06-09T03:00:38.4458537Z             {
2026-06-09T03:00:38.4458650Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4458741Z               "line": 190
2026-06-09T03:00:38.4458823Z             },
2026-06-09T03:00:38.4458908Z             {
2026-06-09T03:00:38.4459023Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4459123Z               "line": 208
2026-06-09T03:00:38.4459203Z             },
2026-06-09T03:00:38.4459289Z             {
2026-06-09T03:00:38.4459405Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T03:00:38.4459495Z               "line": 221
2026-06-09T03:00:38.4459580Z             }
2026-06-09T03:00:38.4459676Z           ]
2026-06-09T03:00:38.4459766Z         }
2026-06-09T03:00:38.4459847Z       }
2026-06-09T03:00:38.4459937Z     },
2026-06-09T03:00:38.4460020Z     {
2026-06-09T03:00:38.4460109Z       "id": "REQ-EP-3",
2026-06-09T03:00:38.4460291Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-09T03:00:38.4460382Z       "requiredStages": [
2026-06-09T03:00:38.4460472Z         "impl",
2026-06-09T03:00:38.4460553Z         "unit"
2026-06-09T03:00:38.4460630Z       ],
2026-06-09T03:00:38.4460716Z       "stages": {
2026-06-09T03:00:38.4460805Z         "doc": {
2026-06-09T03:00:38.4460900Z           "complete": false,
2026-06-09T03:00:38.4460996Z           "evidence": []
2026-06-09T03:00:38.4461085Z         },
2026-06-09T03:00:38.4461165Z         "impl": {
2026-06-09T03:00:38.4461260Z           "complete": true,
2026-06-09T03:00:38.4461352Z           "evidence": [
2026-06-09T03:00:38.4461446Z             {
2026-06-09T03:00:38.4461675Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4461865Z               "line": 31
2026-06-09T03:00:38.4461957Z             },
2026-06-09T03:00:38.4462038Z             {
2026-06-09T03:00:38.4462161Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4462243Z               "line": 49
2026-06-09T03:00:38.4462338Z             }
2026-06-09T03:00:38.4462428Z           ]
2026-06-09T03:00:38.4462514Z         },
2026-06-09T03:00:38.4462601Z         "int": {
2026-06-09T03:00:38.4462696Z           "complete": false,
2026-06-09T03:00:38.4462790Z           "evidence": []
2026-06-09T03:00:38.4462867Z         },
2026-06-09T03:00:38.4462959Z         "unit": {
2026-06-09T03:00:38.4463048Z           "complete": true,
2026-06-09T03:00:38.4463148Z           "evidence": [
2026-06-09T03:00:38.4463240Z             {
2026-06-09T03:00:38.4463353Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4463443Z               "line": 156
2026-06-09T03:00:38.4463534Z             },
2026-06-09T03:00:38.4463628Z             {
2026-06-09T03:00:38.4463745Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4463831Z               "line": 164
2026-06-09T03:00:38.4463923Z             },
2026-06-09T03:00:38.4464004Z             {
2026-06-09T03:00:38.4464117Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4464199Z               "line": 177
2026-06-09T03:00:38.4464290Z             },
2026-06-09T03:00:38.4464375Z             {
2026-06-09T03:00:38.4464495Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4464585Z               "line": 200
2026-06-09T03:00:38.4464671Z             },
2026-06-09T03:00:38.4464761Z             {
2026-06-09T03:00:38.4464872Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4464962Z               "line": 216
2026-06-09T03:00:38.4465052Z             },
2026-06-09T03:00:38.4465134Z             {
2026-06-09T03:00:38.4465266Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T03:00:38.4465357Z               "line": 233
2026-06-09T03:00:38.4465449Z             }
2026-06-09T03:00:38.4465530Z           ]
2026-06-09T03:00:38.4465619Z         }
2026-06-09T03:00:38.4465706Z       }
2026-06-09T03:00:38.4465787Z     },
2026-06-09T03:00:38.4465878Z     {
2026-06-09T03:00:38.4465962Z       "id": "REQ-EP-4",
2026-06-09T03:00:38.4466112Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-09T03:00:38.4466206Z       "requiredStages": [
2026-06-09T03:00:38.4466295Z         "impl",
2026-06-09T03:00:38.4466386Z         "unit"
2026-06-09T03:00:38.4466468Z       ],
2026-06-09T03:00:38.4466558Z       "stages": {
2026-06-09T03:00:38.4466644Z         "doc": {
2026-06-09T03:00:38.4466739Z           "complete": false,
2026-06-09T03:00:38.4466825Z           "evidence": []
2026-06-09T03:00:38.4466915Z         },
2026-06-09T03:00:38.4467084Z         "impl": {
2026-06-09T03:00:38.4467169Z           "complete": true,
2026-06-09T03:00:38.4467297Z           "evidence": [
2026-06-09T03:00:38.4467389Z             {
2026-06-09T03:00:38.4467512Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4467597Z               "line": 461
2026-06-09T03:00:38.4467689Z             },
2026-06-09T03:00:38.4467774Z             {
2026-06-09T03:00:38.4467883Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4467979Z               "line": 706
2026-06-09T03:00:38.4468061Z             },
2026-06-09T03:00:38.4468150Z             {
2026-06-09T03:00:38.4468265Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4468362Z               "line": 805
2026-06-09T03:00:38.4468446Z             },
2026-06-09T03:00:38.4468551Z             {
2026-06-09T03:00:38.4468672Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4468752Z               "line": 83
2026-06-09T03:00:38.4468841Z             },
2026-06-09T03:00:38.4468921Z             {
2026-06-09T03:00:38.4469134Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4469311Z               "line": 460
2026-06-09T03:00:38.4469397Z             },
2026-06-09T03:00:38.4473579Z             {
2026-06-09T03:00:38.4473733Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4473828Z               "line": 546
2026-06-09T03:00:38.4473913Z             },
2026-06-09T03:00:38.4473998Z             {
2026-06-09T03:00:38.4474131Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4474216Z               "line": 196
2026-06-09T03:00:38.4474305Z             },
2026-06-09T03:00:38.4474386Z             {
2026-06-09T03:00:38.4474507Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4474601Z               "line": 337
2026-06-09T03:00:38.4474687Z             },
2026-06-09T03:00:38.4474769Z             {
2026-06-09T03:00:38.4474879Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4474968Z               "line": 847
2026-06-09T03:00:38.4475069Z             }
2026-06-09T03:00:38.4475169Z           ]
2026-06-09T03:00:38.4475245Z         },
2026-06-09T03:00:38.4475336Z         "int": {
2026-06-09T03:00:38.4475436Z           "complete": false,
2026-06-09T03:00:38.4475522Z           "evidence": []
2026-06-09T03:00:38.4475607Z         },
2026-06-09T03:00:38.4475690Z         "unit": {
2026-06-09T03:00:38.4475785Z           "complete": true,
2026-06-09T03:00:38.4475870Z           "evidence": [
2026-06-09T03:00:38.4475951Z             {
2026-06-09T03:00:38.4476071Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T03:00:38.4476160Z               "line": 637
2026-06-09T03:00:38.4476251Z             },
2026-06-09T03:00:38.4476329Z             {
2026-06-09T03:00:38.4476461Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-09T03:00:38.4476547Z               "line": 76
2026-06-09T03:00:38.4476629Z             },
2026-06-09T03:00:38.4476715Z             {
2026-06-09T03:00:38.4476851Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-09T03:00:38.4477028Z               "line": 147
2026-06-09T03:00:38.4477128Z             }
2026-06-09T03:00:38.4477213Z           ]
2026-06-09T03:00:38.4477299Z         }
2026-06-09T03:00:38.4477385Z       }
2026-06-09T03:00:38.4477471Z     },
2026-06-09T03:00:38.4477552Z     {
2026-06-09T03:00:38.4477644Z       "id": "REQ-EP-5",
2026-06-09T03:00:38.4478268Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-09T03:00:38.4478362Z       "requiredStages": [
2026-06-09T03:00:38.4478448Z         "impl",
2026-06-09T03:00:38.4478529Z         "unit",
2026-06-09T03:00:38.4478617Z         "int"
2026-06-09T03:00:38.4478696Z       ],
2026-06-09T03:00:38.4478782Z       "stages": {
2026-06-09T03:00:38.4478864Z         "doc": {
2026-06-09T03:00:38.4478960Z           "complete": false,
2026-06-09T03:00:38.4479058Z           "evidence": []
2026-06-09T03:00:38.4479140Z         },
2026-06-09T03:00:38.4479232Z         "impl": {
2026-06-09T03:00:38.4479321Z           "complete": true,
2026-06-09T03:00:38.4479411Z           "evidence": [
2026-06-09T03:00:38.4479491Z             {
2026-06-09T03:00:38.4479625Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4479713Z               "line": 351
2026-06-09T03:00:38.4479784Z             },
2026-06-09T03:00:38.4479866Z             {
2026-06-09T03:00:38.4479986Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4480076Z               "line": 18
2026-06-09T03:00:38.4480157Z             },
2026-06-09T03:00:38.4480243Z             {
2026-06-09T03:00:38.4480361Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4480447Z               "line": 63
2026-06-09T03:00:38.4480530Z             },
2026-06-09T03:00:38.4480615Z             {
2026-06-09T03:00:38.4480864Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4481053Z               "line": 92
2026-06-09T03:00:38.4481140Z             },
2026-06-09T03:00:38.4481225Z             {
2026-06-09T03:00:38.4481334Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4481426Z               "line": 167
2026-06-09T03:00:38.4481503Z             },
2026-06-09T03:00:38.4481587Z             {
2026-06-09T03:00:38.4481702Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4481789Z               "line": 179
2026-06-09T03:00:38.4481869Z             },
2026-06-09T03:00:38.4481954Z             {
2026-06-09T03:00:38.4482072Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4482163Z               "line": 114
2026-06-09T03:00:38.4482247Z             },
2026-06-09T03:00:38.4482337Z             {
2026-06-09T03:00:38.4482457Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4482547Z               "line": 22
2026-06-09T03:00:38.4482642Z             },
2026-06-09T03:00:38.4482733Z             {
2026-06-09T03:00:38.4482843Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4482928Z               "line": 129
2026-06-09T03:00:38.4483010Z             },
2026-06-09T03:00:38.4483096Z             {
2026-06-09T03:00:38.4483215Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4483300Z               "line": 156
2026-06-09T03:00:38.4483383Z             },
2026-06-09T03:00:38.4483467Z             {
2026-06-09T03:00:38.4483582Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4483668Z               "line": 178
2026-06-09T03:00:38.4483749Z             },
2026-06-09T03:00:38.4483830Z             {
2026-06-09T03:00:38.4483939Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4484027Z               "line": 203
2026-06-09T03:00:38.4484107Z             },
2026-06-09T03:00:38.4484192Z             {
2026-06-09T03:00:38.4484317Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4484403Z               "line": 229
2026-06-09T03:00:38.4484487Z             },
2026-06-09T03:00:38.4484567Z             {
2026-06-09T03:00:38.4484682Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4484767Z               "line": 252
2026-06-09T03:00:38.4484856Z             },
2026-06-09T03:00:38.4484937Z             {
2026-06-09T03:00:38.4485053Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4485147Z               "line": 81
2026-06-09T03:00:38.4485223Z             },
2026-06-09T03:00:38.4485315Z             {
2026-06-09T03:00:38.4485415Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4485509Z               "line": 3994
2026-06-09T03:00:38.4485591Z             },
2026-06-09T03:00:38.4485672Z             {
2026-06-09T03:00:38.4485782Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4485867Z               "line": 4117
2026-06-09T03:00:38.4485959Z             },
2026-06-09T03:00:38.4486039Z             {
2026-06-09T03:00:38.4486139Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4486225Z               "line": 4278
2026-06-09T03:00:38.4486311Z             },
2026-06-09T03:00:38.4486392Z             {
2026-06-09T03:00:38.4486491Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4486579Z               "line": 4660
2026-06-09T03:00:38.4486660Z             }
2026-06-09T03:00:38.4486739Z           ]
2026-06-09T03:00:38.4486826Z         },
2026-06-09T03:00:38.4486908Z         "int": {
2026-06-09T03:00:38.4487077Z           "complete": true,
2026-06-09T03:00:38.4487170Z           "evidence": [
2026-06-09T03:00:38.4487256Z             {
2026-06-09T03:00:38.4487392Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-09T03:00:38.4487478Z               "line": 16
2026-06-09T03:00:38.4487559Z             },
2026-06-09T03:00:38.4487645Z             {
2026-06-09T03:00:38.4487860Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-09T03:00:38.4488031Z               "line": 15
2026-06-09T03:00:38.4488117Z             }
2026-06-09T03:00:38.4488194Z           ]
2026-06-09T03:00:38.4488279Z         },
2026-06-09T03:00:38.4488365Z         "unit": {
2026-06-09T03:00:38.4488455Z           "complete": true,
2026-06-09T03:00:38.4488542Z           "evidence": [
2026-06-09T03:00:38.4488622Z             {
2026-06-09T03:00:38.4488746Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4488833Z               "line": 246
2026-06-09T03:00:38.4488914Z             },
2026-06-09T03:00:38.4488995Z             {
2026-06-09T03:00:38.4489114Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4489200Z               "line": 306
2026-06-09T03:00:38.4489284Z             },
2026-06-09T03:00:38.4489376Z             {
2026-06-09T03:00:38.4489491Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T03:00:38.4489581Z               "line": 362
2026-06-09T03:00:38.4489676Z             },
2026-06-09T03:00:38.4489759Z             {
2026-06-09T03:00:38.4489877Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4489961Z               "line": 268
2026-06-09T03:00:38.4490046Z             },
2026-06-09T03:00:38.4490128Z             {
2026-06-09T03:00:38.4490236Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.4490326Z               "line": 291
2026-06-09T03:00:38.4490398Z             },
2026-06-09T03:00:38.4490479Z             {
2026-06-09T03:00:38.4490588Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4490669Z               "line": 491
2026-06-09T03:00:38.4490756Z             },
2026-06-09T03:00:38.4490832Z             {
2026-06-09T03:00:38.4490945Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4491032Z               "line": 5450
2026-06-09T03:00:38.4491118Z             },
2026-06-09T03:00:38.4491194Z             {
2026-06-09T03:00:38.4491308Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4491395Z               "line": 5574
2026-06-09T03:00:38.4491475Z             },
2026-06-09T03:00:38.4491561Z             {
2026-06-09T03:00:38.4491656Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4491744Z               "line": 6161
2026-06-09T03:00:38.4491823Z             },
2026-06-09T03:00:38.4491904Z             {
2026-06-09T03:00:38.4492005Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4492091Z               "line": 6226
2026-06-09T03:00:38.4492176Z             }
2026-06-09T03:00:38.4492253Z           ]
2026-06-09T03:00:38.4492339Z         }
2026-06-09T03:00:38.4492420Z       }
2026-06-09T03:00:38.4492499Z     },
2026-06-09T03:00:38.4492584Z     {
2026-06-09T03:00:38.4492671Z       "id": "REQ-FRONT-1",
2026-06-09T03:00:38.4492845Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-09T03:00:38.4492945Z       "requiredStages": [],
2026-06-09T03:00:38.4493036Z       "stages": {
2026-06-09T03:00:38.4493126Z         "doc": {
2026-06-09T03:00:38.4493221Z           "complete": false,
2026-06-09T03:00:38.4493303Z           "evidence": []
2026-06-09T03:00:38.4493384Z         },
2026-06-09T03:00:38.4493474Z         "impl": {
2026-06-09T03:00:38.4493560Z           "complete": false,
2026-06-09T03:00:38.4493652Z           "evidence": []
2026-06-09T03:00:38.4493732Z         },
2026-06-09T03:00:38.4493813Z         "int": {
2026-06-09T03:00:38.4493899Z           "complete": false,
2026-06-09T03:00:38.4493985Z           "evidence": []
2026-06-09T03:00:38.4494066Z         },
2026-06-09T03:00:38.4494146Z         "unit": {
2026-06-09T03:00:38.4494238Z           "complete": false,
2026-06-09T03:00:38.4494324Z           "evidence": []
2026-06-09T03:00:38.4494409Z         }
2026-06-09T03:00:38.4494490Z       }
2026-06-09T03:00:38.4494572Z     },
2026-06-09T03:00:38.4494653Z     {
2026-06-09T03:00:38.4494762Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-09T03:00:38.4495005Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-09T03:00:38.4495161Z       "requiredStages": [
2026-06-09T03:00:38.4495252Z         "impl",
2026-06-09T03:00:38.4495336Z         "unit"
2026-06-09T03:00:38.4495417Z       ],
2026-06-09T03:00:38.4495502Z       "stages": {
2026-06-09T03:00:38.4495584Z         "doc": {
2026-06-09T03:00:38.4495674Z           "complete": false,
2026-06-09T03:00:38.4495759Z           "evidence": []
2026-06-09T03:00:38.4495841Z         },
2026-06-09T03:00:38.4495927Z         "impl": {
2026-06-09T03:00:38.4496017Z           "complete": true,
2026-06-09T03:00:38.4496102Z           "evidence": [
2026-06-09T03:00:38.4496180Z             {
2026-06-09T03:00:38.4496351Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4496446Z               "line": 149
2026-06-09T03:00:38.4496528Z             },
2026-06-09T03:00:38.4496614Z             {
2026-06-09T03:00:38.4496723Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4496829Z               "line": 18
2026-06-09T03:00:38.4496909Z             },
2026-06-09T03:00:38.4497086Z             {
2026-06-09T03:00:38.4497191Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4497285Z               "line": 98
2026-06-09T03:00:38.4497367Z             }
2026-06-09T03:00:38.4497449Z           ]
2026-06-09T03:00:38.4497534Z         },
2026-06-09T03:00:38.4497614Z         "int": {
2026-06-09T03:00:38.4497710Z           "complete": false,
2026-06-09T03:00:38.4497793Z           "evidence": []
2026-06-09T03:00:38.4497878Z         },
2026-06-09T03:00:38.4497962Z         "unit": {
2026-06-09T03:00:38.4498052Z           "complete": true,
2026-06-09T03:00:38.4498139Z           "evidence": [
2026-06-09T03:00:38.4498215Z             {
2026-06-09T03:00:38.4498328Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4498415Z               "line": 565
2026-06-09T03:00:38.4498497Z             },
2026-06-09T03:00:38.4498582Z             {
2026-06-09T03:00:38.4498696Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4498787Z               "line": 159
2026-06-09T03:00:38.4498869Z             },
2026-06-09T03:00:38.4498948Z             {
2026-06-09T03:00:38.4499055Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4499140Z               "line": 231
2026-06-09T03:00:38.4499221Z             }
2026-06-09T03:00:38.4499301Z           ]
2026-06-09T03:00:38.4499379Z         }
2026-06-09T03:00:38.4499460Z       }
2026-06-09T03:00:38.4499540Z     },
2026-06-09T03:00:38.4499621Z     {
2026-06-09T03:00:38.4499737Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-09T03:00:38.4500141Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-09T03:00:38.4500231Z       "requiredStages": [
2026-06-09T03:00:38.4500319Z         "impl",
2026-06-09T03:00:38.4500395Z         "unit"
2026-06-09T03:00:38.4500502Z       ],
2026-06-09T03:00:38.4500583Z       "stages": {
2026-06-09T03:00:38.4500669Z         "doc": {
2026-06-09T03:00:38.4500759Z           "complete": true,
2026-06-09T03:00:38.4500843Z           "evidence": [
2026-06-09T03:00:38.4500928Z             {
2026-06-09T03:00:38.4501030Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4501116Z               "line": 218
2026-06-09T03:00:38.4501196Z             }
2026-06-09T03:00:38.4501287Z           ]
2026-06-09T03:00:38.4501368Z         },
2026-06-09T03:00:38.4501454Z         "impl": {
2026-06-09T03:00:38.4501544Z           "complete": true,
2026-06-09T03:00:38.4501626Z           "evidence": [
2026-06-09T03:00:38.4501711Z             {
2026-06-09T03:00:38.4501830Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.4501917Z               "line": 302
2026-06-09T03:00:38.4501998Z             },
2026-06-09T03:00:38.4502079Z             {
2026-06-09T03:00:38.4502294Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.4502469Z               "line": 257
2026-06-09T03:00:38.4502551Z             },
2026-06-09T03:00:38.4502633Z             {
2026-06-09T03:00:38.4502746Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.4502832Z               "line": 405
2026-06-09T03:00:38.4502914Z             },
2026-06-09T03:00:38.4502994Z             {
2026-06-09T03:00:38.4503103Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T03:00:38.4503193Z               "line": 77
2026-06-09T03:00:38.4503274Z             }
2026-06-09T03:00:38.4503353Z           ]
2026-06-09T03:00:38.4503438Z         },
2026-06-09T03:00:38.4503520Z         "int": {
2026-06-09T03:00:38.4503606Z           "complete": false,
2026-06-09T03:00:38.4503691Z           "evidence": []
2026-06-09T03:00:38.4503777Z         },
2026-06-09T03:00:38.4503863Z         "unit": {
2026-06-09T03:00:38.4503954Z           "complete": true,
2026-06-09T03:00:38.4504044Z           "evidence": [
2026-06-09T03:00:38.4504139Z             {
2026-06-09T03:00:38.4504254Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.4504335Z               "line": 478
2026-06-09T03:00:38.4504421Z             },
2026-06-09T03:00:38.4504503Z             {
2026-06-09T03:00:38.4504611Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.4504692Z               "line": 516
2026-06-09T03:00:38.4504774Z             },
2026-06-09T03:00:38.4504856Z             {
2026-06-09T03:00:38.4504964Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T03:00:38.4505055Z               "line": 166
2026-06-09T03:00:38.4505147Z             }
2026-06-09T03:00:38.4505231Z           ]
2026-06-09T03:00:38.4505312Z         }
2026-06-09T03:00:38.4505398Z       }
2026-06-09T03:00:38.4505486Z     },
2026-06-09T03:00:38.4505570Z     {
2026-06-09T03:00:38.4505697Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-09T03:00:38.4506225Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-09T03:00:38.4506320Z       "requiredStages": [
2026-06-09T03:00:38.4506406Z         "impl",
2026-06-09T03:00:38.4506487Z         "unit"
2026-06-09T03:00:38.4506573Z       ],
2026-06-09T03:00:38.4506658Z       "stages": {
2026-06-09T03:00:38.4506750Z         "doc": {
2026-06-09T03:00:38.4506845Z           "complete": false,
2026-06-09T03:00:38.4506935Z           "evidence": []
2026-06-09T03:00:38.4507116Z         },
2026-06-09T03:00:38.4507207Z         "impl": {
2026-06-09T03:00:38.4507311Z           "complete": true,
2026-06-09T03:00:38.4507399Z           "evidence": [
2026-06-09T03:00:38.4507483Z             {
2026-06-09T03:00:38.4507607Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T03:00:38.4507689Z               "line": 22
2026-06-09T03:00:38.4507780Z             },
2026-06-09T03:00:38.4507860Z             {
2026-06-09T03:00:38.4507994Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4508080Z               "line": 479
2026-06-09T03:00:38.4508169Z             },
2026-06-09T03:00:38.4508251Z             {
2026-06-09T03:00:38.4508372Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T03:00:38.4508460Z               "line": 17
2026-06-09T03:00:38.4508541Z             },
2026-06-09T03:00:38.4508626Z             {
2026-06-09T03:00:38.4508747Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T03:00:38.4508832Z               "line": 140
2026-06-09T03:00:38.4508922Z             },
2026-06-09T03:00:38.4508999Z             {
2026-06-09T03:00:38.4509132Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4509222Z               "line": 194
2026-06-09T03:00:38.4509310Z             },
2026-06-09T03:00:38.4509395Z             {
2026-06-09T03:00:38.4509518Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4509814Z               "line": 219
2026-06-09T03:00:38.4509905Z             },
2026-06-09T03:00:38.4509991Z             {
2026-06-09T03:00:38.4510110Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4510200Z               "line": 245
2026-06-09T03:00:38.4510287Z             },
2026-06-09T03:00:38.4510372Z             {
2026-06-09T03:00:38.4510491Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.4510579Z               "line": 124
2026-06-09T03:00:38.4510668Z             },
2026-06-09T03:00:38.4510752Z             {
2026-06-09T03:00:38.4510874Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.4510964Z               "line": 224
2026-06-09T03:00:38.4511044Z             }
2026-06-09T03:00:38.4511134Z           ]
2026-06-09T03:00:38.4511220Z         },
2026-06-09T03:00:38.4511310Z         "int": {
2026-06-09T03:00:38.4511398Z           "complete": false,
2026-06-09T03:00:38.4511489Z           "evidence": []
2026-06-09T03:00:38.4511595Z         },
2026-06-09T03:00:38.4511681Z         "unit": {
2026-06-09T03:00:38.4511774Z           "complete": true,
2026-06-09T03:00:38.4511862Z           "evidence": [
2026-06-09T03:00:38.4511957Z             {
2026-06-09T03:00:38.4512070Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T03:00:38.4512162Z               "line": 62
2026-06-09T03:00:38.4512248Z             },
2026-06-09T03:00:38.4512338Z             {
2026-06-09T03:00:38.4512457Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T03:00:38.4512544Z               "line": 72
2026-06-09T03:00:38.4512629Z             },
2026-06-09T03:00:38.4512714Z             {
2026-06-09T03:00:38.4512830Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T03:00:38.4512920Z               "line": 84
2026-06-09T03:00:38.4513001Z             },
2026-06-09T03:00:38.4513091Z             {
2026-06-09T03:00:38.4513211Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T03:00:38.4513316Z               "line": 346
2026-06-09T03:00:38.4513402Z             },
2026-06-09T03:00:38.4513493Z             {
2026-06-09T03:00:38.4513610Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T03:00:38.4513700Z               "line": 274
2026-06-09T03:00:38.4513786Z             },
2026-06-09T03:00:38.4513872Z             {
2026-06-09T03:00:38.4513989Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T03:00:38.4514075Z               "line": 315
2026-06-09T03:00:38.4514166Z             },
2026-06-09T03:00:38.4514265Z             {
2026-06-09T03:00:38.4514375Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T03:00:38.4514467Z               "line": 353
2026-06-09T03:00:38.4514548Z             },
2026-06-09T03:00:38.4514632Z             {
2026-06-09T03:00:38.4514763Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4514852Z               "line": 656
2026-06-09T03:00:38.4514933Z             },
2026-06-09T03:00:38.4515029Z             {
2026-06-09T03:00:38.4515152Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.4515248Z               "line": 397
2026-06-09T03:00:38.4515334Z             },
2026-06-09T03:00:38.4515421Z             {
2026-06-09T03:00:38.4515534Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.4515634Z               "line": 440
2026-06-09T03:00:38.4515716Z             }
2026-06-09T03:00:38.4515801Z           ]
2026-06-09T03:00:38.4515891Z         }
2026-06-09T03:00:38.4515978Z       }
2026-06-09T03:00:38.4516060Z     },
2026-06-09T03:00:38.4516148Z     {
2026-06-09T03:00:38.4516262Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-09T03:00:38.4516475Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-09T03:00:38.4516579Z       "requiredStages": [
2026-06-09T03:00:38.4516661Z         "impl",
2026-06-09T03:00:38.4516748Z         "unit"
2026-06-09T03:00:38.4516842Z       ],
2026-06-09T03:00:38.4517171Z       "stages": {
2026-06-09T03:00:38.4517290Z         "doc": {
2026-06-09T03:00:38.4517386Z           "complete": false,
2026-06-09T03:00:38.4517495Z           "evidence": []
2026-06-09T03:00:38.4517576Z         },
2026-06-09T03:00:38.4517663Z         "impl": {
2026-06-09T03:00:38.4517758Z           "complete": true,
2026-06-09T03:00:38.4517848Z           "evidence": [
2026-06-09T03:00:38.4517930Z             {
2026-06-09T03:00:38.4518043Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T03:00:38.4518134Z               "line": 169
2026-06-09T03:00:38.4518216Z             }
2026-06-09T03:00:38.4518302Z           ]
2026-06-09T03:00:38.4518386Z         },
2026-06-09T03:00:38.4518473Z         "int": {
2026-06-09T03:00:38.4518564Z           "complete": true,
2026-06-09T03:00:38.4518649Z           "evidence": [
2026-06-09T03:00:38.4518734Z             {
2026-06-09T03:00:38.4518840Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-09T03:00:38.4518932Z               "line": 44
2026-06-09T03:00:38.4519039Z             },
2026-06-09T03:00:38.4519124Z             {
2026-06-09T03:00:38.4519235Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-09T03:00:38.4519321Z               "line": 66
2026-06-09T03:00:38.4519406Z             }
2026-06-09T03:00:38.4519487Z           ]
2026-06-09T03:00:38.4519574Z         },
2026-06-09T03:00:38.4519664Z         "unit": {
2026-06-09T03:00:38.4519754Z           "complete": true,
2026-06-09T03:00:38.4519845Z           "evidence": [
2026-06-09T03:00:38.4519926Z             {
2026-06-09T03:00:38.4520035Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T03:00:38.4520121Z               "line": 186
2026-06-09T03:00:38.4520208Z             },
2026-06-09T03:00:38.4520298Z             {
2026-06-09T03:00:38.4520407Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T03:00:38.4520499Z               "line": 238
2026-06-09T03:00:38.4520584Z             },
2026-06-09T03:00:38.4520665Z             {
2026-06-09T03:00:38.4520789Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T03:00:38.4520885Z               "line": 266
2026-06-09T03:00:38.4520970Z             }
2026-06-09T03:00:38.4521051Z           ]
2026-06-09T03:00:38.4521143Z         }
2026-06-09T03:00:38.4521224Z       }
2026-06-09T03:00:38.4521317Z     },
2026-06-09T03:00:38.4521405Z     {
2026-06-09T03:00:38.4521529Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-09T03:00:38.4521940Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-09T03:00:38.4522034Z       "requiredStages": [
2026-06-09T03:00:38.4522126Z         "impl",
2026-06-09T03:00:38.4522212Z         "unit",
2026-06-09T03:00:38.4522297Z         "int"
2026-06-09T03:00:38.4522378Z       ],
2026-06-09T03:00:38.4522479Z       "stages": {
2026-06-09T03:00:38.4522564Z         "doc": {
2026-06-09T03:00:38.4522659Z           "complete": false,
2026-06-09T03:00:38.4522760Z           "evidence": []
2026-06-09T03:00:38.4522846Z         },
2026-06-09T03:00:38.4522936Z         "impl": {
2026-06-09T03:00:38.4523022Z           "complete": true,
2026-06-09T03:00:38.4523113Z           "evidence": [
2026-06-09T03:00:38.4523194Z             {
2026-06-09T03:00:38.4523323Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4523414Z               "line": 150
2026-06-09T03:00:38.4523499Z             },
2026-06-09T03:00:38.4523585Z             {
2026-06-09T03:00:38.4523700Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4523790Z               "line": 174
2026-06-09T03:00:38.4523876Z             },
2026-06-09T03:00:38.4523957Z             {
2026-06-09T03:00:38.4524072Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.4524161Z               "line": 79
2026-06-09T03:00:38.4524246Z             },
2026-06-09T03:00:38.4524328Z             {
2026-06-09T03:00:38.4524511Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.4524693Z               "line": 51
2026-06-09T03:00:38.4524774Z             },
2026-06-09T03:00:38.4524859Z             {
2026-06-09T03:00:38.4524969Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4525060Z               "line": 154
2026-06-09T03:00:38.4525145Z             },
2026-06-09T03:00:38.4525226Z             {
2026-06-09T03:00:38.4525347Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4525437Z               "line": 27
2026-06-09T03:00:38.4525526Z             },
2026-06-09T03:00:38.4525609Z             {
2026-06-09T03:00:38.4525722Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4525817Z               "line": 79
2026-06-09T03:00:38.4525899Z             },
2026-06-09T03:00:38.4525981Z             {
2026-06-09T03:00:38.4526094Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4526190Z               "line": 102
2026-06-09T03:00:38.4526272Z             },
2026-06-09T03:00:38.4526423Z             {
2026-06-09T03:00:38.4526548Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4526634Z               "line": 116
2026-06-09T03:00:38.4526723Z             }
2026-06-09T03:00:38.4526804Z           ]
2026-06-09T03:00:38.4526889Z         },
2026-06-09T03:00:38.4527049Z         "int": {
2026-06-09T03:00:38.4527187Z           "complete": true,
2026-06-09T03:00:38.4527327Z           "evidence": [
2026-06-09T03:00:38.4527416Z             {
2026-06-09T03:00:38.4527555Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T03:00:38.4527641Z               "line": 35
2026-06-09T03:00:38.4527731Z             }
2026-06-09T03:00:38.4527812Z           ]
2026-06-09T03:00:38.4527899Z         },
2026-06-09T03:00:38.4527984Z         "unit": {
2026-06-09T03:00:38.4528074Z           "complete": true,
2026-06-09T03:00:38.4528165Z           "evidence": [
2026-06-09T03:00:38.4528246Z             {
2026-06-09T03:00:38.4528379Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4528471Z               "line": 584
2026-06-09T03:00:38.4528557Z             },
2026-06-09T03:00:38.4528646Z             {
2026-06-09T03:00:38.4528756Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4528848Z               "line": 351
2026-06-09T03:00:38.4528928Z             },
2026-06-09T03:00:38.4529018Z             {
2026-06-09T03:00:38.4529129Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4529219Z               "line": 124
2026-06-09T03:00:38.4529304Z             },
2026-06-09T03:00:38.4529386Z             {
2026-06-09T03:00:38.4529502Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4529585Z               "line": 143
2026-06-09T03:00:38.4529675Z             },
2026-06-09T03:00:38.4529756Z             {
2026-06-09T03:00:38.4529867Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4529957Z               "line": 160
2026-06-09T03:00:38.4530052Z             },
2026-06-09T03:00:38.4530143Z             {
2026-06-09T03:00:38.4530257Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4530342Z               "line": 187
2026-06-09T03:00:38.4530425Z             },
2026-06-09T03:00:38.4530510Z             {
2026-06-09T03:00:38.4530619Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T03:00:38.4530706Z               "line": 206
2026-06-09T03:00:38.4530792Z             },
2026-06-09T03:00:38.4530873Z             {
2026-06-09T03:00:38.4530986Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4531074Z               "line": 229
2026-06-09T03:00:38.4531154Z             }
2026-06-09T03:00:38.4531244Z           ]
2026-06-09T03:00:38.4531330Z         }
2026-06-09T03:00:38.4531412Z       }
2026-06-09T03:00:38.4531501Z     },
2026-06-09T03:00:38.4531583Z     {
2026-06-09T03:00:38.4531703Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-09T03:00:38.4532411Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-09T03:00:38.4532599Z       "requiredStages": [
2026-06-09T03:00:38.4532681Z         "impl",
2026-06-09T03:00:38.4532772Z         "unit"
2026-06-09T03:00:38.4532853Z       ],
2026-06-09T03:00:38.4532943Z       "stages": {
2026-06-09T03:00:38.4533025Z         "doc": {
2026-06-09T03:00:38.4533120Z           "complete": false,
2026-06-09T03:00:38.4533209Z           "evidence": []
2026-06-09T03:00:38.4533297Z         },
2026-06-09T03:00:38.4533382Z         "impl": {
2026-06-09T03:00:38.4533473Z           "complete": true,
2026-06-09T03:00:38.4533563Z           "evidence": [
2026-06-09T03:00:38.4533649Z             {
2026-06-09T03:00:38.4533764Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4533858Z               "line": 222
2026-06-09T03:00:38.4533960Z             },
2026-06-09T03:00:38.4534045Z             {
2026-06-09T03:00:38.4534159Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4534246Z               "line": 389
2026-06-09T03:00:38.4534331Z             }
2026-06-09T03:00:38.4534411Z           ]
2026-06-09T03:00:38.4534497Z         },
2026-06-09T03:00:38.4534571Z         "int": {
2026-06-09T03:00:38.4534665Z           "complete": false,
2026-06-09T03:00:38.4534754Z           "evidence": []
2026-06-09T03:00:38.4534840Z         },
2026-06-09T03:00:38.4534925Z         "unit": {
2026-06-09T03:00:38.4535019Z           "complete": true,
2026-06-09T03:00:38.4535142Z           "evidence": [
2026-06-09T03:00:38.4535224Z             {
2026-06-09T03:00:38.4535348Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-09T03:00:38.4535423Z               "line": 161
2026-06-09T03:00:38.4535510Z             }
2026-06-09T03:00:38.4535592Z           ]
2026-06-09T03:00:38.4535673Z         }
2026-06-09T03:00:38.4535824Z       }
2026-06-09T03:00:38.4535911Z     },
2026-06-09T03:00:38.4535997Z     {
2026-06-09T03:00:38.4536101Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-09T03:00:38.4536273Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-09T03:00:38.4536396Z       "requiredStages": [
2026-06-09T03:00:38.4536493Z         "impl",
2026-06-09T03:00:38.4536579Z         "unit"
2026-06-09T03:00:38.4536664Z       ],
2026-06-09T03:00:38.4536750Z       "stages": {
2026-06-09T03:00:38.4536832Z         "doc": {
2026-06-09T03:00:38.4536931Z           "complete": false,
2026-06-09T03:00:38.4537113Z           "evidence": []
2026-06-09T03:00:38.4537199Z         },
2026-06-09T03:00:38.4537283Z         "impl": {
2026-06-09T03:00:38.4537373Z           "complete": true,
2026-06-09T03:00:38.4537459Z           "evidence": [
2026-06-09T03:00:38.4537540Z             {
2026-06-09T03:00:38.4537657Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4537752Z               "line": 40
2026-06-09T03:00:38.4537839Z             },
2026-06-09T03:00:38.4539917Z             {
2026-06-09T03:00:38.4540062Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4540155Z               "line": 100
2026-06-09T03:00:38.4540240Z             },
2026-06-09T03:00:38.4540321Z             {
2026-06-09T03:00:38.4540446Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4540541Z               "line": 215
2026-06-09T03:00:38.4540622Z             },
2026-06-09T03:00:38.4540704Z             {
2026-06-09T03:00:38.4540817Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4540907Z               "line": 314
2026-06-09T03:00:38.4540985Z             }
2026-06-09T03:00:38.4541075Z           ]
2026-06-09T03:00:38.4541160Z         },
2026-06-09T03:00:38.4541246Z         "int": {
2026-06-09T03:00:38.4541338Z           "complete": false,
2026-06-09T03:00:38.4541428Z           "evidence": []
2026-06-09T03:00:38.4541508Z         },
2026-06-09T03:00:38.4541838Z         "unit": {
2026-06-09T03:00:38.4541934Z           "complete": true,
2026-06-09T03:00:38.4542024Z           "evidence": [
2026-06-09T03:00:38.4542105Z             {
2026-06-09T03:00:38.4542220Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4542311Z               "line": 352
2026-06-09T03:00:38.4542390Z             },
2026-06-09T03:00:38.4542477Z             {
2026-06-09T03:00:38.4542583Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4542668Z               "line": 409
2026-06-09T03:00:38.4542753Z             },
2026-06-09T03:00:38.4542833Z             {
2026-06-09T03:00:38.4542948Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4543027Z               "line": 458
2026-06-09T03:00:38.4543117Z             },
2026-06-09T03:00:38.4543198Z             {
2026-06-09T03:00:38.4543304Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4543389Z               "line": 479
2026-06-09T03:00:38.4543489Z             }
2026-06-09T03:00:38.4543575Z           ]
2026-06-09T03:00:38.4543656Z         }
2026-06-09T03:00:38.4543741Z       }
2026-06-09T03:00:38.4543823Z     },
2026-06-09T03:00:38.4543904Z     {
2026-06-09T03:00:38.4544028Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-09T03:00:38.4544147Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-09T03:00:38.4544243Z       "requiredStages": [
2026-06-09T03:00:38.4544324Z         "impl",
2026-06-09T03:00:38.4544409Z         "unit"
2026-06-09T03:00:38.4544491Z       ],
2026-06-09T03:00:38.4544576Z       "stages": {
2026-06-09T03:00:38.4544657Z         "doc": {
2026-06-09T03:00:38.4544748Z           "complete": false,
2026-06-09T03:00:38.4544840Z           "evidence": []
2026-06-09T03:00:38.4544919Z         },
2026-06-09T03:00:38.4545010Z         "impl": {
2026-06-09T03:00:38.4545101Z           "complete": true,
2026-06-09T03:00:38.4545188Z           "evidence": [
2026-06-09T03:00:38.4545272Z             {
2026-06-09T03:00:38.4545395Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4545486Z               "line": 113
2026-06-09T03:00:38.4545566Z             },
2026-06-09T03:00:38.4545650Z             {
2026-06-09T03:00:38.4545765Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4545847Z               "line": 208
2026-06-09T03:00:38.4545932Z             }
2026-06-09T03:00:38.4546012Z           ]
2026-06-09T03:00:38.4546094Z         },
2026-06-09T03:00:38.4546176Z         "int": {
2026-06-09T03:00:38.4546265Z           "complete": false,
2026-06-09T03:00:38.4546356Z           "evidence": []
2026-06-09T03:00:38.4546433Z         },
2026-06-09T03:00:38.4546523Z         "unit": {
2026-06-09T03:00:38.4546614Z           "complete": true,
2026-06-09T03:00:38.4546699Z           "evidence": [
2026-06-09T03:00:38.4546781Z             {
2026-06-09T03:00:38.4546891Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4547072Z               "line": 373
2026-06-09T03:00:38.4547172Z             },
2026-06-09T03:00:38.4547257Z             {
2026-06-09T03:00:38.4547368Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4547454Z               "line": 436
2026-06-09T03:00:38.4547533Z             }
2026-06-09T03:00:38.4547615Z           ]
2026-06-09T03:00:38.4547702Z         }
2026-06-09T03:00:38.4547787Z       }
2026-06-09T03:00:38.4547876Z     },
2026-06-09T03:00:38.4547957Z     {
2026-06-09T03:00:38.4548076Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-09T03:00:38.4549199Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-09T03:00:38.4549291Z       "requiredStages": [
2026-06-09T03:00:38.4549376Z         "impl",
2026-06-09T03:00:38.4549658Z         "unit"
2026-06-09T03:00:38.4549752Z       ],
2026-06-09T03:00:38.4549833Z       "stages": {
2026-06-09T03:00:38.4549921Z         "doc": {
2026-06-09T03:00:38.4550011Z           "complete": true,
2026-06-09T03:00:38.4550100Z           "evidence": [
2026-06-09T03:00:38.4550182Z             {
2026-06-09T03:00:38.4550288Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4550377Z               "line": 204
2026-06-09T03:00:38.4550453Z             }
2026-06-09T03:00:38.4550540Z           ]
2026-06-09T03:00:38.4550622Z         },
2026-06-09T03:00:38.4550710Z         "impl": {
2026-06-09T03:00:38.4550796Z           "complete": true,
2026-06-09T03:00:38.4550882Z           "evidence": [
2026-06-09T03:00:38.4550968Z             {
2026-06-09T03:00:38.4551086Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4551177Z               "line": 501
2026-06-09T03:00:38.4551259Z             },
2026-06-09T03:00:38.4551340Z             {
2026-06-09T03:00:38.4551458Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4551540Z               "line": 593
2026-06-09T03:00:38.4551626Z             },
2026-06-09T03:00:38.4551706Z             {
2026-06-09T03:00:38.4551826Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.4551908Z               "line": 183
2026-06-09T03:00:38.4551993Z             }
2026-06-09T03:00:38.4552088Z           ]
2026-06-09T03:00:38.4552184Z         },
2026-06-09T03:00:38.4552269Z         "int": {
2026-06-09T03:00:38.4552359Z           "complete": false,
2026-06-09T03:00:38.4552450Z           "evidence": []
2026-06-09T03:00:38.4552533Z         },
2026-06-09T03:00:38.4552612Z         "unit": {
2026-06-09T03:00:38.4552703Z           "complete": true,
2026-06-09T03:00:38.4552790Z           "evidence": [
2026-06-09T03:00:38.4552876Z             {
2026-06-09T03:00:38.4552988Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4553075Z               "line": 631
2026-06-09T03:00:38.4553177Z             },
2026-06-09T03:00:38.4553256Z             {
2026-06-09T03:00:38.4553378Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-09T03:00:38.4553465Z               "line": 44
2026-06-09T03:00:38.4553545Z             },
2026-06-09T03:00:38.4553634Z             {
2026-06-09T03:00:38.4553739Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-09T03:00:38.4553830Z               "line": 54
2026-06-09T03:00:38.4553911Z             },
2026-06-09T03:00:38.4553992Z             {
2026-06-09T03:00:38.4554117Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-09T03:00:38.4554207Z               "line": 51
2026-06-09T03:00:38.4554292Z             }
2026-06-09T03:00:38.4554373Z           ]
2026-06-09T03:00:38.4554455Z         }
2026-06-09T03:00:38.4554536Z       }
2026-06-09T03:00:38.4554621Z     },
2026-06-09T03:00:38.4554698Z     {
2026-06-09T03:00:38.4554822Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-09T03:00:38.4555036Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-09T03:00:38.4555136Z       "requiredStages": [
2026-06-09T03:00:38.4555217Z         "impl",
2026-06-09T03:00:38.4555298Z         "unit"
2026-06-09T03:00:38.4555390Z       ],
2026-06-09T03:00:38.4555470Z       "stages": {
2026-06-09T03:00:38.4555556Z         "doc": {
2026-06-09T03:00:38.4555652Z           "complete": false,
2026-06-09T03:00:38.4555738Z           "evidence": []
2026-06-09T03:00:38.4555822Z         },
2026-06-09T03:00:38.4555907Z         "impl": {
2026-06-09T03:00:38.4555998Z           "complete": true,
2026-06-09T03:00:38.4556074Z           "evidence": [
2026-06-09T03:00:38.4556153Z             {
2026-06-09T03:00:38.4556282Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4556368Z               "line": 26
2026-06-09T03:00:38.4556454Z             },
2026-06-09T03:00:38.4556535Z             {
2026-06-09T03:00:38.4556644Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4556868Z               "line": 135
2026-06-09T03:00:38.4557050Z             },
2026-06-09T03:00:38.4557131Z             {
2026-06-09T03:00:38.4557250Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T03:00:38.4557356Z               "line": 26
2026-06-09T03:00:38.4557436Z             },
2026-06-09T03:00:38.4557521Z             {
2026-06-09T03:00:38.4557637Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T03:00:38.4557727Z               "line": 237
2026-06-09T03:00:38.4557808Z             }
2026-06-09T03:00:38.4557889Z           ]
2026-06-09T03:00:38.4557971Z         },
2026-06-09T03:00:38.4558051Z         "int": {
2026-06-09T03:00:38.4558142Z           "complete": false,
2026-06-09T03:00:38.4558228Z           "evidence": []
2026-06-09T03:00:38.4558314Z         },
2026-06-09T03:00:38.4558394Z         "unit": {
2026-06-09T03:00:38.4558484Z           "complete": true,
2026-06-09T03:00:38.4558570Z           "evidence": [
2026-06-09T03:00:38.4558664Z             {
2026-06-09T03:00:38.4558777Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4558862Z               "line": 161
2026-06-09T03:00:38.4558945Z             },
2026-06-09T03:00:38.4559031Z             {
2026-06-09T03:00:38.4559139Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4559226Z               "line": 170
2026-06-09T03:00:38.4559307Z             },
2026-06-09T03:00:38.4559392Z             {
2026-06-09T03:00:38.4559497Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4559584Z               "line": 179
2026-06-09T03:00:38.4559664Z             },
2026-06-09T03:00:38.4559745Z             {
2026-06-09T03:00:38.4559856Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4559941Z               "line": 190
2026-06-09T03:00:38.4560022Z             },
2026-06-09T03:00:38.4560103Z             {
2026-06-09T03:00:38.4560209Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4560312Z               "line": 199
2026-06-09T03:00:38.4560398Z             },
2026-06-09T03:00:38.4560481Z             {
2026-06-09T03:00:38.4560585Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4560675Z               "line": 216
2026-06-09T03:00:38.4560751Z             },
2026-06-09T03:00:38.4560838Z             {
2026-06-09T03:00:38.4560951Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T03:00:38.4561037Z               "line": 242
2026-06-09T03:00:38.4561120Z             },
2026-06-09T03:00:38.4561196Z             {
2026-06-09T03:00:38.4561318Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4561407Z               "line": 257
2026-06-09T03:00:38.4561490Z             },
2026-06-09T03:00:38.4561571Z             {
2026-06-09T03:00:38.4561675Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4561762Z               "line": 244
2026-06-09T03:00:38.4561843Z             },
2026-06-09T03:00:38.4561938Z             {
2026-06-09T03:00:38.4562061Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T03:00:38.4562148Z               "line": 265
2026-06-09T03:00:38.4562230Z             },
2026-06-09T03:00:38.4562314Z             {
2026-06-09T03:00:38.4562430Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T03:00:38.4562514Z               "line": 293
2026-06-09T03:00:38.4562596Z             },
2026-06-09T03:00:38.4562677Z             {
2026-06-09T03:00:38.4562797Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T03:00:38.4562886Z               "line": 317
2026-06-09T03:00:38.4562967Z             },
2026-06-09T03:00:38.4563049Z             {
2026-06-09T03:00:38.4563163Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T03:00:38.4563249Z               "line": 327
2026-06-09T03:00:38.4563330Z             },
2026-06-09T03:00:38.4563412Z             {
2026-06-09T03:00:38.4563530Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.4563797Z               "line": 540
2026-06-09T03:00:38.4563882Z             }
2026-06-09T03:00:38.4563962Z           ]
2026-06-09T03:00:38.4564054Z         }
2026-06-09T03:00:38.4564138Z       }
2026-06-09T03:00:38.4564218Z     },
2026-06-09T03:00:38.4564299Z     {
2026-06-09T03:00:38.4564419Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-09T03:00:38.4564566Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-09T03:00:38.4564652Z       "requiredStages": [
2026-06-09T03:00:38.4564738Z         "impl",
2026-06-09T03:00:38.4564824Z         "unit"
2026-06-09T03:00:38.4564900Z       ],
2026-06-09T03:00:38.4564987Z       "stages": {
2026-06-09T03:00:38.4565072Z         "doc": {
2026-06-09T03:00:38.4565162Z           "complete": false,
2026-06-09T03:00:38.4565248Z           "evidence": []
2026-06-09T03:00:38.4565330Z         },
2026-06-09T03:00:38.4565415Z         "impl": {
2026-06-09T03:00:38.4565500Z           "complete": true,
2026-06-09T03:00:38.4565602Z           "evidence": [
2026-06-09T03:00:38.4565687Z             {
2026-06-09T03:00:38.4565801Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T03:00:38.4565887Z               "line": 25
2026-06-09T03:00:38.4565974Z             },
2026-06-09T03:00:38.4566053Z             {
2026-06-09T03:00:38.4566164Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4566251Z               "line": 26
2026-06-09T03:00:38.4566331Z             },
2026-06-09T03:00:38.4566430Z             {
2026-06-09T03:00:38.4566539Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4566630Z               "line": 159
2026-06-09T03:00:38.4566709Z             }
2026-06-09T03:00:38.4566794Z           ]
2026-06-09T03:00:38.4566875Z         },
2026-06-09T03:00:38.4567052Z         "int": {
2026-06-09T03:00:38.4567146Z           "complete": false,
2026-06-09T03:00:38.4567239Z           "evidence": []
2026-06-09T03:00:38.4567320Z         },
2026-06-09T03:00:38.4567400Z         "unit": {
2026-06-09T03:00:38.4567500Z           "complete": true,
2026-06-09T03:00:38.4567591Z           "evidence": [
2026-06-09T03:00:38.4567672Z             {
2026-06-09T03:00:38.4567781Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T03:00:38.4567864Z               "line": 184
2026-06-09T03:00:38.4567948Z             },
2026-06-09T03:00:38.4568029Z             {
2026-06-09T03:00:38.4568135Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T03:00:38.4568221Z               "line": 236
2026-06-09T03:00:38.4568301Z             },
2026-06-09T03:00:38.4568382Z             {
2026-06-09T03:00:38.4568493Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4568583Z               "line": 186
2026-06-09T03:00:38.4568663Z             }
2026-06-09T03:00:38.4568744Z           ]
2026-06-09T03:00:38.4568827Z         }
2026-06-09T03:00:38.4568907Z       }
2026-06-09T03:00:38.4568992Z     },
2026-06-09T03:00:38.4569072Z     {
2026-06-09T03:00:38.4569196Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-09T03:00:38.4569365Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-09T03:00:38.4569452Z       "requiredStages": [
2026-06-09T03:00:38.4569539Z         "impl",
2026-06-09T03:00:38.4569623Z         "unit"
2026-06-09T03:00:38.4569704Z       ],
2026-06-09T03:00:38.4569786Z       "stages": {
2026-06-09T03:00:38.4569872Z         "doc": {
2026-06-09T03:00:38.4569962Z           "complete": false,
2026-06-09T03:00:38.4570048Z           "evidence": []
2026-06-09T03:00:38.4570130Z         },
2026-06-09T03:00:38.4570215Z         "impl": {
2026-06-09T03:00:38.4570305Z           "complete": true,
2026-06-09T03:00:38.4570391Z           "evidence": [
2026-06-09T03:00:38.4570473Z             {
2026-06-09T03:00:38.4570587Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4570672Z               "line": 48
2026-06-09T03:00:38.4570754Z             },
2026-06-09T03:00:38.4570830Z             {
2026-06-09T03:00:38.4571055Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4571230Z               "line": 55
2026-06-09T03:00:38.4571311Z             },
2026-06-09T03:00:38.4571398Z             {
2026-06-09T03:00:38.4571507Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4571593Z               "line": 74
2026-06-09T03:00:38.4571675Z             },
2026-06-09T03:00:38.4571761Z             {
2026-06-09T03:00:38.4571868Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4571954Z               "line": 91
2026-06-09T03:00:38.4572040Z             }
2026-06-09T03:00:38.4572126Z           ]
2026-06-09T03:00:38.4572206Z         },
2026-06-09T03:00:38.4572287Z         "int": {
2026-06-09T03:00:38.4572380Z           "complete": false,
2026-06-09T03:00:38.4572465Z           "evidence": []
2026-06-09T03:00:38.4572545Z         },
2026-06-09T03:00:38.4572631Z         "unit": {
2026-06-09T03:00:38.4572718Z           "complete": true,
2026-06-09T03:00:38.4572804Z           "evidence": [
2026-06-09T03:00:38.4572898Z             {
2026-06-09T03:00:38.4573009Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4573093Z               "line": 149
2026-06-09T03:00:38.4573179Z             },
2026-06-09T03:00:38.4573261Z             {
2026-06-09T03:00:38.4573371Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4573461Z               "line": 166
2026-06-09T03:00:38.4573542Z             },
2026-06-09T03:00:38.4573624Z             {
2026-06-09T03:00:38.4573733Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4573818Z               "line": 176
2026-06-09T03:00:38.4573900Z             },
2026-06-09T03:00:38.4573977Z             {
2026-06-09T03:00:38.4574085Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4574176Z               "line": 194
2026-06-09T03:00:38.4574258Z             },
2026-06-09T03:00:38.4574339Z             {
2026-06-09T03:00:38.4574442Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4574542Z               "line": 207
2026-06-09T03:00:38.4574623Z             }
2026-06-09T03:00:38.4574708Z           ]
2026-06-09T03:00:38.4574788Z         }
2026-06-09T03:00:38.4574874Z       }
2026-06-09T03:00:38.4574951Z     },
2026-06-09T03:00:38.4575036Z     {
2026-06-09T03:00:38.4575155Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-09T03:00:38.4575332Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-09T03:00:38.4575426Z       "requiredStages": [
2026-06-09T03:00:38.4575508Z         "impl",
2026-06-09T03:00:38.4575595Z         "unit"
2026-06-09T03:00:38.4575680Z       ],
2026-06-09T03:00:38.4575765Z       "stages": {
2026-06-09T03:00:38.4575847Z         "doc": {
2026-06-09T03:00:38.4575942Z           "complete": false,
2026-06-09T03:00:38.4576028Z           "evidence": []
2026-06-09T03:00:38.4576109Z         },
2026-06-09T03:00:38.4576191Z         "impl": {
2026-06-09T03:00:38.4576285Z           "complete": true,
2026-06-09T03:00:38.4576395Z           "evidence": [
2026-06-09T03:00:38.4576477Z             {
2026-06-09T03:00:38.4576600Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4576686Z               "line": 373
2026-06-09T03:00:38.4576767Z             },
2026-06-09T03:00:38.4576849Z             {
2026-06-09T03:00:38.4577051Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4577138Z               "line": 26
2026-06-09T03:00:38.4577223Z             }
2026-06-09T03:00:38.4577302Z           ]
2026-06-09T03:00:38.4577382Z         },
2026-06-09T03:00:38.4577464Z         "int": {
2026-06-09T03:00:38.4577551Z           "complete": false,
2026-06-09T03:00:38.4577645Z           "evidence": []
2026-06-09T03:00:38.4577726Z         },
2026-06-09T03:00:38.4577813Z         "unit": {
2026-06-09T03:00:38.4577899Z           "complete": true,
2026-06-09T03:00:38.4577988Z           "evidence": [
2026-06-09T03:00:38.4578070Z             {
2026-06-09T03:00:38.4578274Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4578452Z               "line": 150
2026-06-09T03:00:38.4578532Z             },
2026-06-09T03:00:38.4578618Z             {
2026-06-09T03:00:38.4578729Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4578814Z               "line": 208
2026-06-09T03:00:38.4578895Z             }
2026-06-09T03:00:38.4578980Z           ]
2026-06-09T03:00:38.4579063Z         }
2026-06-09T03:00:38.4579143Z       }
2026-06-09T03:00:38.4579228Z     },
2026-06-09T03:00:38.4579314Z     {
2026-06-09T03:00:38.4579434Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-09T03:00:38.4580728Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-09T03:00:38.4580832Z       "requiredStages": [
2026-06-09T03:00:38.4580913Z         "doc",
2026-06-09T03:00:38.4580995Z         "impl",
2026-06-09T03:00:38.4581080Z         "unit"
2026-06-09T03:00:38.4581161Z       ],
2026-06-09T03:00:38.4581247Z       "stages": {
2026-06-09T03:00:38.4581338Z         "doc": {
2026-06-09T03:00:38.4581428Z           "complete": true,
2026-06-09T03:00:38.4581514Z           "evidence": [
2026-06-09T03:00:38.4581591Z             {
2026-06-09T03:00:38.4581701Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4581785Z               "line": 212
2026-06-09T03:00:38.4581871Z             }
2026-06-09T03:00:38.4581954Z           ]
2026-06-09T03:00:38.4582034Z         },
2026-06-09T03:00:38.4582118Z         "impl": {
2026-06-09T03:00:38.4582206Z           "complete": true,
2026-06-09T03:00:38.4582292Z           "evidence": [
2026-06-09T03:00:38.4582372Z             {
2026-06-09T03:00:38.4582500Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4582595Z               "line": 54
2026-06-09T03:00:38.4582681Z             },
2026-06-09T03:00:38.4582762Z             {
2026-06-09T03:00:38.4582877Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4582968Z               "line": 419
2026-06-09T03:00:38.4583049Z             },
2026-06-09T03:00:38.4583128Z             {
2026-06-09T03:00:38.4583249Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4583335Z               "line": 36
2026-06-09T03:00:38.4583406Z             },
2026-06-09T03:00:38.4583487Z             {
2026-06-09T03:00:38.4583588Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4583668Z               "line": 59
2026-06-09T03:00:38.4583749Z             },
2026-06-09T03:00:38.4583821Z             {
2026-06-09T03:00:38.4583931Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4584016Z               "line": 83
2026-06-09T03:00:38.4584131Z             },
2026-06-09T03:00:38.4584227Z             {
2026-06-09T03:00:38.4584335Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4584426Z               "line": 140
2026-06-09T03:00:38.4584508Z             },
2026-06-09T03:00:38.4584589Z             {
2026-06-09T03:00:38.4584703Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4584790Z               "line": 159
2026-06-09T03:00:38.4584871Z             },
2026-06-09T03:00:38.4584950Z             {
2026-06-09T03:00:38.4585064Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4585150Z               "line": 384
2026-06-09T03:00:38.4585235Z             },
2026-06-09T03:00:38.4585314Z             {
2026-06-09T03:00:38.4585429Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4585516Z               "line": 526
2026-06-09T03:00:38.4585597Z             },
2026-06-09T03:00:38.4585677Z             {
2026-06-09T03:00:38.4585935Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4586020Z               "line": 572
2026-06-09T03:00:38.4586102Z             },
2026-06-09T03:00:38.4586183Z             {
2026-06-09T03:00:38.4586292Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.4586378Z               "line": 145
2026-06-09T03:00:38.4586460Z             },
2026-06-09T03:00:38.4586540Z             {
2026-06-09T03:00:38.4586645Z               "path": "crates/spt/src/main.rs",
2026-06-09T03:00:38.4586732Z               "line": 39
2026-06-09T03:00:38.4586808Z             }
2026-06-09T03:00:38.4586903Z           ]
2026-06-09T03:00:38.4587061Z         },
2026-06-09T03:00:38.4587142Z         "int": {
2026-06-09T03:00:38.4587232Z           "complete": false,
2026-06-09T03:00:38.4587318Z           "evidence": []
2026-06-09T03:00:38.4587400Z         },
2026-06-09T03:00:38.4587484Z         "unit": {
2026-06-09T03:00:38.4587579Z           "complete": true,
2026-06-09T03:00:38.4587683Z           "evidence": [
2026-06-09T03:00:38.4587764Z             {
2026-06-09T03:00:38.4587877Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4587962Z               "line": 760
2026-06-09T03:00:38.4588044Z             },
2026-06-09T03:00:38.4588120Z             {
2026-06-09T03:00:38.4588244Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4588330Z               "line": 801
2026-06-09T03:00:38.4588406Z             },
2026-06-09T03:00:38.4588487Z             {
2026-06-09T03:00:38.4588596Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4588684Z               "line": 875
2026-06-09T03:00:38.4588759Z             }
2026-06-09T03:00:38.4588844Z           ]
2026-06-09T03:00:38.4588925Z         }
2026-06-09T03:00:38.4589008Z       }
2026-06-09T03:00:38.4589088Z     },
2026-06-09T03:00:38.4589164Z     {
2026-06-09T03:00:38.4589279Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-09T03:00:38.4589435Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-09T03:00:38.4589536Z       "requiredStages": [
2026-06-09T03:00:38.4589618Z         "impl",
2026-06-09T03:00:38.4589698Z         "unit"
2026-06-09T03:00:38.4589784Z       ],
2026-06-09T03:00:38.4589865Z       "stages": {
2026-06-09T03:00:38.4589952Z         "doc": {
2026-06-09T03:00:38.4590046Z           "complete": false,
2026-06-09T03:00:38.4590141Z           "evidence": []
2026-06-09T03:00:38.4590226Z         },
2026-06-09T03:00:38.4590307Z         "impl": {
2026-06-09T03:00:38.4590396Z           "complete": true,
2026-06-09T03:00:38.4590481Z           "evidence": [
2026-06-09T03:00:38.4590567Z             {
2026-06-09T03:00:38.4590678Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4590767Z               "line": 36
2026-06-09T03:00:38.4590848Z             },
2026-06-09T03:00:38.4590930Z             {
2026-06-09T03:00:38.4591040Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4591134Z               "line": 68
2026-06-09T03:00:38.4591221Z             }
2026-06-09T03:00:38.4591302Z           ]
2026-06-09T03:00:38.4591383Z         },
2026-06-09T03:00:38.4591463Z         "int": {
2026-06-09T03:00:38.4591551Z           "complete": false,
2026-06-09T03:00:38.4591635Z           "evidence": []
2026-06-09T03:00:38.4591716Z         },
2026-06-09T03:00:38.4591802Z         "unit": {
2026-06-09T03:00:38.4591894Z           "complete": true,
2026-06-09T03:00:38.4591979Z           "evidence": [
2026-06-09T03:00:38.4592060Z             {
2026-06-09T03:00:38.4592170Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4592256Z               "line": 143
2026-06-09T03:00:38.4592336Z             },
2026-06-09T03:00:38.4592422Z             {
2026-06-09T03:00:38.4592528Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4592617Z               "line": 160
2026-06-09T03:00:38.4592698Z             },
2026-06-09T03:00:38.4592776Z             {
2026-06-09T03:00:38.4593093Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4593180Z               "line": 168
2026-06-09T03:00:38.4593266Z             }
2026-06-09T03:00:38.4593346Z           ]
2026-06-09T03:00:38.4593427Z         }
2026-06-09T03:00:38.4593509Z       }
2026-06-09T03:00:38.4593595Z     },
2026-06-09T03:00:38.4593675Z     {
2026-06-09T03:00:38.4593790Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-09T03:00:38.4593961Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-09T03:00:38.4594052Z       "requiredStages": [
2026-06-09T03:00:38.4594138Z         "impl",
2026-06-09T03:00:38.4594219Z         "unit"
2026-06-09T03:00:38.4594309Z       ],
2026-06-09T03:00:38.4594400Z       "stages": {
2026-06-09T03:00:38.4594482Z         "doc": {
2026-06-09T03:00:38.4594566Z           "complete": false,
2026-06-09T03:00:38.4594647Z           "evidence": []
2026-06-09T03:00:38.4594725Z         },
2026-06-09T03:00:38.4594811Z         "impl": {
2026-06-09T03:00:38.4594920Z           "complete": true,
2026-06-09T03:00:38.4595025Z           "evidence": [
2026-06-09T03:00:38.4595107Z             {
2026-06-09T03:00:38.4595219Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4595301Z               "line": 107
2026-06-09T03:00:38.4595384Z             }
2026-06-09T03:00:38.4595474Z           ]
2026-06-09T03:00:38.4595548Z         },
2026-06-09T03:00:38.4595624Z         "int": {
2026-06-09T03:00:38.4595715Z           "complete": false,
2026-06-09T03:00:38.4595809Z           "evidence": []
2026-06-09T03:00:38.4595884Z         },
2026-06-09T03:00:38.4595979Z         "unit": {
2026-06-09T03:00:38.4596081Z           "complete": true,
2026-06-09T03:00:38.4596166Z           "evidence": [
2026-06-09T03:00:38.4596246Z             {
2026-06-09T03:00:38.4596357Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4596452Z               "line": 184
2026-06-09T03:00:38.4596532Z             },
2026-06-09T03:00:38.4596628Z             {
2026-06-09T03:00:38.4596743Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4596833Z               "line": 193
2026-06-09T03:00:38.4596919Z             },
2026-06-09T03:00:38.4597095Z             {
2026-06-09T03:00:38.4597234Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4597321Z               "line": 201
2026-06-09T03:00:38.4597405Z             },
2026-06-09T03:00:38.4597496Z             {
2026-06-09T03:00:38.4597621Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4597706Z               "line": 211
2026-06-09T03:00:38.4597787Z             },
2026-06-09T03:00:38.4597868Z             {
2026-06-09T03:00:38.4597979Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T03:00:38.4598063Z               "line": 221
2026-06-09T03:00:38.4598144Z             }
2026-06-09T03:00:38.4598229Z           ]
2026-06-09T03:00:38.4598315Z         }
2026-06-09T03:00:38.4598394Z       }
2026-06-09T03:00:38.4598499Z     },
2026-06-09T03:00:38.4598580Z     {
2026-06-09T03:00:38.4598695Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-09T03:00:38.4598846Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-09T03:00:38.4598943Z       "requiredStages": [
2026-06-09T03:00:38.4599024Z         "impl",
2026-06-09T03:00:38.4599113Z         "unit"
2026-06-09T03:00:38.4599195Z       ],
2026-06-09T03:00:38.4599277Z       "stages": {
2026-06-09T03:00:38.4599362Z         "doc": {
2026-06-09T03:00:38.4599452Z           "complete": false,
2026-06-09T03:00:38.4599539Z           "evidence": []
2026-06-09T03:00:38.4599619Z         },
2026-06-09T03:00:38.4599705Z         "impl": {
2026-06-09T03:00:38.4599795Z           "complete": true,
2026-06-09T03:00:38.4599878Z           "evidence": [
2026-06-09T03:00:38.4599958Z             {
2026-06-09T03:00:38.4600067Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.4600149Z               "line": 14
2026-06-09T03:00:38.4600334Z             },
2026-06-09T03:00:38.4600498Z             {
2026-06-09T03:00:38.4600601Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.4600687Z               "line": 62
2026-06-09T03:00:38.4600767Z             }
2026-06-09T03:00:38.4600849Z           ]
2026-06-09T03:00:38.4600928Z         },
2026-06-09T03:00:38.4601022Z         "int": {
2026-06-09T03:00:38.4601108Z           "complete": false,
2026-06-09T03:00:38.4601200Z           "evidence": []
2026-06-09T03:00:38.4601275Z         },
2026-06-09T03:00:38.4601361Z         "unit": {
2026-06-09T03:00:38.4601451Z           "complete": true,
2026-06-09T03:00:38.4601533Z           "evidence": [
2026-06-09T03:00:38.4601618Z             {
2026-06-09T03:00:38.4601718Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.4601806Z               "line": 160
2026-06-09T03:00:38.4601886Z             },
2026-06-09T03:00:38.4601966Z             {
2026-06-09T03:00:38.4602072Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.4602181Z               "line": 197
2026-06-09T03:00:38.4602262Z             },
2026-06-09T03:00:38.4602348Z             {
2026-06-09T03:00:38.4602449Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.4602534Z               "line": 219
2026-06-09T03:00:38.4602615Z             }
2026-06-09T03:00:38.4602697Z           ]
2026-06-09T03:00:38.4602778Z         }
2026-06-09T03:00:38.4602858Z       }
2026-06-09T03:00:38.4602944Z     },
2026-06-09T03:00:38.4604912Z     {
2026-06-09T03:00:38.4605042Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-09T03:00:38.4606360Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-09T03:00:38.4606463Z       "requiredStages": [],
2026-06-09T03:00:38.4606549Z       "stages": {
2026-06-09T03:00:38.4606636Z         "doc": {
2026-06-09T03:00:38.4606731Z           "complete": true,
2026-06-09T03:00:38.4606815Z           "evidence": [
2026-06-09T03:00:38.4606898Z             {
2026-06-09T03:00:38.4607107Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4607193Z               "line": 163
2026-06-09T03:00:38.4607270Z             }
2026-06-09T03:00:38.4607355Z           ]
2026-06-09T03:00:38.4607436Z         },
2026-06-09T03:00:38.4607523Z         "impl": {
2026-06-09T03:00:38.4607613Z           "complete": false,
2026-06-09T03:00:38.4607699Z           "evidence": []
2026-06-09T03:00:38.4607784Z         },
2026-06-09T03:00:38.4607866Z         "int": {
2026-06-09T03:00:38.4607956Z           "complete": false,
2026-06-09T03:00:38.4608042Z           "evidence": []
2026-06-09T03:00:38.4608123Z         },
2026-06-09T03:00:38.4608210Z         "unit": {
2026-06-09T03:00:38.4608309Z           "complete": false,
2026-06-09T03:00:38.4608399Z           "evidence": []
2026-06-09T03:00:38.4608477Z         }
2026-06-09T03:00:38.4608558Z       }
2026-06-09T03:00:38.4608637Z     },
2026-06-09T03:00:38.4608722Z     {
2026-06-09T03:00:38.4608837Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-09T03:00:38.4609044Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-09T03:00:38.4609135Z       "requiredStages": [
2026-06-09T03:00:38.4609217Z         "impl",
2026-06-09T03:00:38.4609302Z         "unit"
2026-06-09T03:00:38.4609382Z       ],
2026-06-09T03:00:38.4609464Z       "stages": {
2026-06-09T03:00:38.4609550Z         "doc": {
2026-06-09T03:00:38.4609636Z           "complete": false,
2026-06-09T03:00:38.4609726Z           "evidence": []
2026-06-09T03:00:38.4609804Z         },
2026-06-09T03:00:38.4609888Z         "impl": {
2026-06-09T03:00:38.4609974Z           "complete": true,
2026-06-09T03:00:38.4610189Z           "evidence": [
2026-06-09T03:00:38.4610365Z             {
2026-06-09T03:00:38.4610476Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4610565Z               "line": 76
2026-06-09T03:00:38.4610642Z             },
2026-06-09T03:00:38.4610729Z             {
2026-06-09T03:00:38.4610838Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4610928Z               "line": 167
2026-06-09T03:00:38.4611009Z             },
2026-06-09T03:00:38.4611087Z             {
2026-06-09T03:00:38.4611194Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4611280Z               "line": 233
2026-06-09T03:00:38.4611361Z             },
2026-06-09T03:00:38.4611447Z             {
2026-06-09T03:00:38.4611554Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4611639Z               "line": 272
2026-06-09T03:00:38.4611721Z             }
2026-06-09T03:00:38.4611803Z           ]
2026-06-09T03:00:38.4611883Z         },
2026-06-09T03:00:38.4611983Z         "int": {
2026-06-09T03:00:38.4612074Z           "complete": false,
2026-06-09T03:00:38.4612160Z           "evidence": []
2026-06-09T03:00:38.4612240Z         },
2026-06-09T03:00:38.4612322Z         "unit": {
2026-06-09T03:00:38.4612412Z           "complete": true,
2026-06-09T03:00:38.4612498Z           "evidence": [
2026-06-09T03:00:38.4612579Z             {
2026-06-09T03:00:38.4612690Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4612775Z               "line": 321
2026-06-09T03:00:38.4612855Z             },
2026-06-09T03:00:38.4612937Z             {
2026-06-09T03:00:38.4613042Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4613127Z               "line": 329
2026-06-09T03:00:38.4613213Z             },
2026-06-09T03:00:38.4613295Z             {
2026-06-09T03:00:38.4613399Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4613480Z               "line": 356
2026-06-09T03:00:38.4613561Z             },
2026-06-09T03:00:38.4613663Z             {
2026-06-09T03:00:38.4613770Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4613857Z               "line": 395
2026-06-09T03:00:38.4613944Z             },
2026-06-09T03:00:38.4614024Z             {
2026-06-09T03:00:38.4614133Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4614218Z               "line": 406
2026-06-09T03:00:38.4614295Z             },
2026-06-09T03:00:38.4614376Z             {
2026-06-09T03:00:38.4614485Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4614576Z               "line": 418
2026-06-09T03:00:38.4614653Z             },
2026-06-09T03:00:38.4614738Z             {
2026-06-09T03:00:38.4614843Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T03:00:38.4614930Z               "line": 442
2026-06-09T03:00:38.4615011Z             }
2026-06-09T03:00:38.4615091Z           ]
2026-06-09T03:00:38.4615172Z         }
2026-06-09T03:00:38.4615259Z       }
2026-06-09T03:00:38.4615354Z     },
2026-06-09T03:00:38.4615434Z     {
2026-06-09T03:00:38.4615540Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-09T03:00:38.4615677Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-09T03:00:38.4615768Z       "requiredStages": [
2026-06-09T03:00:38.4615850Z         "impl",
2026-06-09T03:00:38.4615936Z         "int"
2026-06-09T03:00:38.4616016Z       ],
2026-06-09T03:00:38.4616097Z       "stages": {
2026-06-09T03:00:38.4616180Z         "doc": {
2026-06-09T03:00:38.4616265Z           "complete": false,
2026-06-09T03:00:38.4616354Z           "evidence": []
2026-06-09T03:00:38.4616436Z         },
2026-06-09T03:00:38.4616518Z         "impl": {
2026-06-09T03:00:38.4616608Z           "complete": true,
2026-06-09T03:00:38.4616692Z           "evidence": [
2026-06-09T03:00:38.4616773Z             {
2026-06-09T03:00:38.4616887Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4617056Z               "line": 22
2026-06-09T03:00:38.4617138Z             }
2026-06-09T03:00:38.4617405Z           ]
2026-06-09T03:00:38.4617487Z         },
2026-06-09T03:00:38.4617567Z         "int": {
2026-06-09T03:00:38.4617662Z           "complete": true,
2026-06-09T03:00:38.4617744Z           "evidence": [
2026-06-09T03:00:38.4617825Z             {
2026-06-09T03:00:38.4617944Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-09T03:00:38.4618029Z               "line": 18
2026-06-09T03:00:38.4618112Z             }
2026-06-09T03:00:38.4618188Z           ]
2026-06-09T03:00:38.4618273Z         },
2026-06-09T03:00:38.4618354Z         "unit": {
2026-06-09T03:00:38.4618445Z           "complete": false,
2026-06-09T03:00:38.4618531Z           "evidence": []
2026-06-09T03:00:38.4618612Z         }
2026-06-09T03:00:38.4618693Z       }
2026-06-09T03:00:38.4618770Z     },
2026-06-09T03:00:38.4618854Z     {
2026-06-09T03:00:38.4618969Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-09T03:00:38.4619151Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-09T03:00:38.4619249Z       "requiredStages": [
2026-06-09T03:00:38.4619330Z         "impl",
2026-06-09T03:00:38.4619411Z         "unit"
2026-06-09T03:00:38.4619492Z       ],
2026-06-09T03:00:38.4619575Z       "stages": {
2026-06-09T03:00:38.4619656Z         "doc": {
2026-06-09T03:00:38.4619744Z           "complete": false,
2026-06-09T03:00:38.4619834Z           "evidence": []
2026-06-09T03:00:38.4619909Z         },
2026-06-09T03:00:38.4619996Z         "impl": {
2026-06-09T03:00:38.4620082Z           "complete": true,
2026-06-09T03:00:38.4620168Z           "evidence": [
2026-06-09T03:00:38.4620243Z             {
2026-06-09T03:00:38.4620364Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4620458Z               "line": 372
2026-06-09T03:00:38.4620534Z             },
2026-06-09T03:00:38.4620615Z             {
2026-06-09T03:00:38.4620726Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4620807Z               "line": 27
2026-06-09T03:00:38.4620901Z             }
2026-06-09T03:00:38.4620983Z           ]
2026-06-09T03:00:38.4621069Z         },
2026-06-09T03:00:38.4621150Z         "int": {
2026-06-09T03:00:38.4621236Z           "complete": false,
2026-06-09T03:00:38.4621322Z           "evidence": []
2026-06-09T03:00:38.4621407Z         },
2026-06-09T03:00:38.4621488Z         "unit": {
2026-06-09T03:00:38.4621579Z           "complete": true,
2026-06-09T03:00:38.4621666Z           "evidence": [
2026-06-09T03:00:38.4621745Z             {
2026-06-09T03:00:38.4621859Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4621945Z               "line": 817
2026-06-09T03:00:38.4622025Z             },
2026-06-09T03:00:38.4622104Z             {
2026-06-09T03:00:38.4622214Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4622301Z               "line": 181
2026-06-09T03:00:38.4622378Z             }
2026-06-09T03:00:38.4622462Z           ]
2026-06-09T03:00:38.4622543Z         }
2026-06-09T03:00:38.4622644Z       }
2026-06-09T03:00:38.4622725Z     },
2026-06-09T03:00:38.4622805Z     {
2026-06-09T03:00:38.4622921Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-09T03:00:38.4623072Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-09T03:00:38.4623163Z       "requiredStages": [
2026-06-09T03:00:38.4623245Z         "impl",
2026-06-09T03:00:38.4623325Z         "unit"
2026-06-09T03:00:38.4623406Z       ],
2026-06-09T03:00:38.4623492Z       "stages": {
2026-06-09T03:00:38.4623579Z         "doc": {
2026-06-09T03:00:38.4623668Z           "complete": false,
2026-06-09T03:00:38.4623754Z           "evidence": []
2026-06-09T03:00:38.4623837Z         },
2026-06-09T03:00:38.4623918Z         "impl": {
2026-06-09T03:00:38.4624002Z           "complete": true,
2026-06-09T03:00:38.4624093Z           "evidence": [
2026-06-09T03:00:38.4624170Z             {
2026-06-09T03:00:38.4624279Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T03:00:38.4624364Z               "line": 20
2026-06-09T03:00:38.4624603Z             },
2026-06-09T03:00:38.4624688Z             {
2026-06-09T03:00:38.4624798Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T03:00:38.4624884Z               "line": 100
2026-06-09T03:00:38.4624969Z             },
2026-06-09T03:00:38.4625050Z             {
2026-06-09T03:00:38.4625166Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T03:00:38.4625247Z               "line": 68
2026-06-09T03:00:38.4625331Z             },
2026-06-09T03:00:38.4625412Z             {
2026-06-09T03:00:38.4625523Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T03:00:38.4625613Z               "line": 80
2026-06-09T03:00:38.4625694Z             }
2026-06-09T03:00:38.4625776Z           ]
2026-06-09T03:00:38.4625856Z         },
2026-06-09T03:00:38.4625942Z         "int": {
2026-06-09T03:00:38.4626027Z           "complete": false,
2026-06-09T03:00:38.4626115Z           "evidence": []
2026-06-09T03:00:38.4626199Z         },
2026-06-09T03:00:38.4626290Z         "unit": {
2026-06-09T03:00:38.4626381Z           "complete": true,
2026-06-09T03:00:38.4626467Z           "evidence": [
2026-06-09T03:00:38.4626547Z             {
2026-06-09T03:00:38.4626653Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T03:00:38.4626740Z               "line": 152
2026-06-09T03:00:38.4626820Z             },
2026-06-09T03:00:38.4626900Z             {
2026-06-09T03:00:38.4627097Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T03:00:38.4627181Z               "line": 175
2026-06-09T03:00:38.4627262Z             },
2026-06-09T03:00:38.4627343Z             {
2026-06-09T03:00:38.4627447Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T03:00:38.4627536Z               "line": 186
2026-06-09T03:00:38.4627616Z             },
2026-06-09T03:00:38.4627698Z             {
2026-06-09T03:00:38.4627804Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T03:00:38.4627884Z               "line": 202
2026-06-09T03:00:38.4627984Z             },
2026-06-09T03:00:38.4628066Z             {
2026-06-09T03:00:38.4628170Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T03:00:38.4628255Z               "line": 216
2026-06-09T03:00:38.4628338Z             },
2026-06-09T03:00:38.4628414Z             {
2026-06-09T03:00:38.4628528Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T03:00:38.4628614Z               "line": 137
2026-06-09T03:00:38.4628691Z             }
2026-06-09T03:00:38.4628771Z           ]
2026-06-09T03:00:38.4628847Z         }
2026-06-09T03:00:38.4628929Z       }
2026-06-09T03:00:38.4629006Z     },
2026-06-09T03:00:38.4629086Z     {
2026-06-09T03:00:38.4629181Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-09T03:00:38.4629419Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-09T03:00:38.4629505Z       "requiredStages": [
2026-06-09T03:00:38.4629587Z         "impl",
2026-06-09T03:00:38.4629669Z         "unit"
2026-06-09T03:00:38.4629767Z       ],
2026-06-09T03:00:38.4629852Z       "stages": {
2026-06-09T03:00:38.4629929Z         "doc": {
2026-06-09T03:00:38.4630019Z           "complete": true,
2026-06-09T03:00:38.4630108Z           "evidence": [
2026-06-09T03:00:38.4630183Z             {
2026-06-09T03:00:38.4630289Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4630370Z               "line": 131
2026-06-09T03:00:38.4630451Z             }
2026-06-09T03:00:38.4630532Z           ]
2026-06-09T03:00:38.4630614Z         },
2026-06-09T03:00:38.4630694Z         "impl": {
2026-06-09T03:00:38.4630780Z           "complete": true,
2026-06-09T03:00:38.4630865Z           "evidence": [
2026-06-09T03:00:38.4630943Z             {
2026-06-09T03:00:38.4631047Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.4631132Z               "line": 65
2026-06-09T03:00:38.4631210Z             },
2026-06-09T03:00:38.4631291Z             {
2026-06-09T03:00:38.4631491Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T03:00:38.4631662Z               "line": 17
2026-06-09T03:00:38.4631738Z             },
2026-06-09T03:00:38.4631819Z             {
2026-06-09T03:00:38.4631930Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.4632014Z               "line": 217
2026-06-09T03:00:38.4632096Z             },
2026-06-09T03:00:38.4632174Z             {
2026-06-09T03:00:38.4632282Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.4632362Z               "line": 317
2026-06-09T03:00:38.4632442Z             },
2026-06-09T03:00:38.4632524Z             {
2026-06-09T03:00:38.4632632Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4632717Z               "line": 32
2026-06-09T03:00:38.4632793Z             },
2026-06-09T03:00:38.4632875Z             {
2026-06-09T03:00:38.4632975Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4633060Z               "line": 4085
2026-06-09T03:00:38.4633142Z             },
2026-06-09T03:00:38.4633232Z             {
2026-06-09T03:00:38.4633327Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4633413Z               "line": 4353
2026-06-09T03:00:38.4633495Z             }
2026-06-09T03:00:38.4633570Z           ]
2026-06-09T03:00:38.4633651Z         },
2026-06-09T03:00:38.4633732Z         "int": {
2026-06-09T03:00:38.4633820Z           "complete": false,
2026-06-09T03:00:38.4633904Z           "evidence": []
2026-06-09T03:00:38.4633980Z         },
2026-06-09T03:00:38.4634062Z         "unit": {
2026-06-09T03:00:38.4634149Z           "complete": true,
2026-06-09T03:00:38.4634233Z           "evidence": [
2026-06-09T03:00:38.4634314Z             {
2026-06-09T03:00:38.4634416Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T03:00:38.4634501Z               "line": 94
2026-06-09T03:00:38.4634581Z             },
2026-06-09T03:00:38.4634658Z             {
2026-06-09T03:00:38.4634759Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T03:00:38.4634853Z               "line": 111
2026-06-09T03:00:38.4634939Z             },
2026-06-09T03:00:38.4635016Z             {
2026-06-09T03:00:38.4635122Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T03:00:38.4635205Z               "line": 124
2026-06-09T03:00:38.4635286Z             },
2026-06-09T03:00:38.4635363Z             {
2026-06-09T03:00:38.4635463Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T03:00:38.4635548Z               "line": 134
2026-06-09T03:00:38.4635629Z             },
2026-06-09T03:00:38.4635706Z             {
2026-06-09T03:00:38.4635807Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T03:00:38.4635891Z               "line": 144
2026-06-09T03:00:38.4635977Z             },
2026-06-09T03:00:38.4636060Z             {
2026-06-09T03:00:38.4636164Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T03:00:38.4636249Z               "line": 156
2026-06-09T03:00:38.4636331Z             },
2026-06-09T03:00:38.4636407Z             {
2026-06-09T03:00:38.4636540Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4636631Z               "line": 714
2026-06-09T03:00:38.4636713Z             }
2026-06-09T03:00:38.4636793Z           ]
2026-06-09T03:00:38.4636874Z         }
2026-06-09T03:00:38.4637046Z       }
2026-06-09T03:00:38.4637131Z     },
2026-06-09T03:00:38.4637213Z     {
2026-06-09T03:00:38.4637319Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-09T03:00:38.4637441Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-09T03:00:38.4637532Z       "requiredStages": [
2026-06-09T03:00:38.4637614Z         "impl",
2026-06-09T03:00:38.4637695Z         "unit"
2026-06-09T03:00:38.4637774Z       ],
2026-06-09T03:00:38.4637855Z       "stages": {
2026-06-09T03:00:38.4637936Z         "doc": {
2026-06-09T03:00:38.4638026Z           "complete": false,
2026-06-09T03:00:38.4638111Z           "evidence": []
2026-06-09T03:00:38.4638190Z         },
2026-06-09T03:00:38.4638273Z         "impl": {
2026-06-09T03:00:38.4638458Z           "complete": true,
2026-06-09T03:00:38.4638626Z           "evidence": [
2026-06-09T03:00:38.4638702Z             {
2026-06-09T03:00:38.4638816Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.4638898Z               "line": 128
2026-06-09T03:00:38.4638979Z             }
2026-06-09T03:00:38.4639059Z           ]
2026-06-09T03:00:38.4639140Z         },
2026-06-09T03:00:38.4639223Z         "int": {
2026-06-09T03:00:38.4639308Z           "complete": false,
2026-06-09T03:00:38.4639398Z           "evidence": []
2026-06-09T03:00:38.4639479Z         },
2026-06-09T03:00:38.4639557Z         "unit": {
2026-06-09T03:00:38.4639646Z           "complete": true,
2026-06-09T03:00:38.4639727Z           "evidence": [
2026-06-09T03:00:38.4639808Z             {
2026-06-09T03:00:38.4639918Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.4640003Z               "line": 205
2026-06-09T03:00:38.4640080Z             }
2026-06-09T03:00:38.4640162Z           ]
2026-06-09T03:00:38.4640247Z         }
2026-06-09T03:00:38.4640332Z       }
2026-06-09T03:00:38.4640412Z     },
2026-06-09T03:00:38.4640489Z     {
2026-06-09T03:00:38.4640602Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-09T03:00:38.4640753Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-09T03:00:38.4640844Z       "requiredStages": [
2026-06-09T03:00:38.4640925Z         "impl",
2026-06-09T03:00:38.4641006Z         "unit"
2026-06-09T03:00:38.4641087Z       ],
2026-06-09T03:00:38.4641169Z       "stages": {
2026-06-09T03:00:38.4641250Z         "doc": {
2026-06-09T03:00:38.4641340Z           "complete": false,
2026-06-09T03:00:38.4641421Z           "evidence": []
2026-06-09T03:00:38.4641503Z         },
2026-06-09T03:00:38.4641583Z         "impl": {
2026-06-09T03:00:38.4641673Z           "complete": true,
2026-06-09T03:00:38.4641755Z           "evidence": [
2026-06-09T03:00:38.4641837Z             {
2026-06-09T03:00:38.4641946Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4642046Z               "line": 246
2026-06-09T03:00:38.4642128Z             },
2026-06-09T03:00:38.4642203Z             {
2026-06-09T03:00:38.4642308Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4642389Z               "line": 257
2026-06-09T03:00:38.4642471Z             },
2026-06-09T03:00:38.4642551Z             {
2026-06-09T03:00:38.4642651Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4642734Z               "line": 275
2026-06-09T03:00:38.4642814Z             }
2026-06-09T03:00:38.4642894Z           ]
2026-06-09T03:00:38.4642974Z         },
2026-06-09T03:00:38.4643056Z         "int": {
2026-06-09T03:00:38.4643145Z           "complete": false,
2026-06-09T03:00:38.4643225Z           "evidence": []
2026-06-09T03:00:38.4643310Z         },
2026-06-09T03:00:38.4643387Z         "unit": {
2026-06-09T03:00:38.4643474Z           "complete": true,
2026-06-09T03:00:38.4643563Z           "evidence": [
2026-06-09T03:00:38.4643654Z             {
2026-06-09T03:00:38.4643774Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4643859Z               "line": 299
2026-06-09T03:00:38.4643940Z             },
2026-06-09T03:00:38.4644017Z             {
2026-06-09T03:00:38.4644121Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4644207Z               "line": 320
2026-06-09T03:00:38.4644293Z             },
2026-06-09T03:00:38.4644370Z             {
2026-06-09T03:00:38.4644474Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4644554Z               "line": 547
2026-06-09T03:00:38.4644632Z             },
2026-06-09T03:00:38.4644713Z             {
2026-06-09T03:00:38.4644817Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4644898Z               "line": 558
2026-06-09T03:00:38.4644985Z             },
2026-06-09T03:00:38.4645062Z             {
2026-06-09T03:00:38.4645166Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4645247Z               "line": 571
2026-06-09T03:00:38.4645465Z             }
2026-06-09T03:00:38.4645547Z           ]
2026-06-09T03:00:38.4645629Z         }
2026-06-09T03:00:38.4645710Z       }
2026-06-09T03:00:38.4645789Z     },
2026-06-09T03:00:38.4645870Z     {
2026-06-09T03:00:38.4645976Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-09T03:00:38.4649385Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-09T03:00:38.4649496Z       "requiredStages": [
2026-06-09T03:00:38.4649581Z         "impl",
2026-06-09T03:00:38.4649662Z         "unit"
2026-06-09T03:00:38.4649739Z       ],
2026-06-09T03:00:38.4649825Z       "stages": {
2026-06-09T03:00:38.4649906Z         "doc": {
2026-06-09T03:00:38.4649996Z           "complete": false,
2026-06-09T03:00:38.4650087Z           "evidence": []
2026-06-09T03:00:38.4650168Z         },
2026-06-09T03:00:38.4650268Z         "impl": {
2026-06-09T03:00:38.4650358Z           "complete": true,
2026-06-09T03:00:38.4650446Z           "evidence": [
2026-06-09T03:00:38.4650525Z             {
2026-06-09T03:00:38.4650659Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4650746Z               "line": 714
2026-06-09T03:00:38.4650821Z             }
2026-06-09T03:00:38.4650901Z           ]
2026-06-09T03:00:38.4650982Z         },
2026-06-09T03:00:38.4651063Z         "int": {
2026-06-09T03:00:38.4651148Z           "complete": false,
2026-06-09T03:00:38.4651238Z           "evidence": []
2026-06-09T03:00:38.4651318Z         },
2026-06-09T03:00:38.4651395Z         "unit": {
2026-06-09T03:00:38.4651486Z           "complete": true,
2026-06-09T03:00:38.4651566Z           "evidence": [
2026-06-09T03:00:38.4651647Z             {
2026-06-09T03:00:38.4651767Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4651852Z               "line": 828
2026-06-09T03:00:38.4651933Z             }
2026-06-09T03:00:38.4652020Z           ]
2026-06-09T03:00:38.4652101Z         }
2026-06-09T03:00:38.4652177Z       }
2026-06-09T03:00:38.4652257Z     },
2026-06-09T03:00:38.4652335Z     {
2026-06-09T03:00:38.4652439Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-09T03:00:38.4652640Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-09T03:00:38.4652730Z       "requiredStages": [
2026-06-09T03:00:38.4652815Z         "impl",
2026-06-09T03:00:38.4652892Z         "unit"
2026-06-09T03:00:38.4652974Z       ],
2026-06-09T03:00:38.4653055Z       "stages": {
2026-06-09T03:00:38.4653135Z         "doc": {
2026-06-09T03:00:38.4653225Z           "complete": false,
2026-06-09T03:00:38.4653313Z           "evidence": []
2026-06-09T03:00:38.4653393Z         },
2026-06-09T03:00:38.4653473Z         "impl": {
2026-06-09T03:00:38.4653563Z           "complete": true,
2026-06-09T03:00:38.4653644Z           "evidence": [
2026-06-09T03:00:38.4653724Z             {
2026-06-09T03:00:38.4653851Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T03:00:38.4653938Z               "line": 14
2026-06-09T03:00:38.4654015Z             },
2026-06-09T03:00:38.4654095Z             {
2026-06-09T03:00:38.4654199Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.4654286Z               "line": 411
2026-06-09T03:00:38.4654362Z             }
2026-06-09T03:00:38.4654448Z           ]
2026-06-09T03:00:38.4654524Z         },
2026-06-09T03:00:38.4654606Z         "int": {
2026-06-09T03:00:38.4654691Z           "complete": false,
2026-06-09T03:00:38.4654777Z           "evidence": []
2026-06-09T03:00:38.4654853Z         },
2026-06-09T03:00:38.4654935Z         "unit": {
2026-06-09T03:00:38.4655024Z           "complete": true,
2026-06-09T03:00:38.4655106Z           "evidence": [
2026-06-09T03:00:38.4655182Z             {
2026-06-09T03:00:38.4655283Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T03:00:38.4655367Z               "line": 130
2026-06-09T03:00:38.4655598Z             },
2026-06-09T03:00:38.4655773Z             {
2026-06-09T03:00:38.4655879Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T03:00:38.4655960Z               "line": 138
2026-06-09T03:00:38.4656039Z             },
2026-06-09T03:00:38.4656117Z             {
2026-06-09T03:00:38.4656218Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T03:00:38.4656307Z               "line": 146
2026-06-09T03:00:38.4656387Z             },
2026-06-09T03:00:38.4656463Z             {
2026-06-09T03:00:38.4656569Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T03:00:38.4656678Z               "line": 154
2026-06-09T03:00:38.4656759Z             },
2026-06-09T03:00:38.4656841Z             {
2026-06-09T03:00:38.4656942Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T03:00:38.4657117Z               "line": 162
2026-06-09T03:00:38.4657199Z             },
2026-06-09T03:00:38.4657275Z             {
2026-06-09T03:00:38.4657379Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T03:00:38.4657475Z               "line": 170
2026-06-09T03:00:38.4657556Z             }
2026-06-09T03:00:38.4657641Z           ]
2026-06-09T03:00:38.4657718Z         }
2026-06-09T03:00:38.4657795Z       }
2026-06-09T03:00:38.4657875Z     },
2026-06-09T03:00:38.4657956Z     {
2026-06-09T03:00:38.4658061Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-09T03:00:38.4658947Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-09T03:00:38.4659043Z       "requiredStages": [
2026-06-09T03:00:38.4659124Z         "impl",
2026-06-09T03:00:38.4659207Z         "unit"
2026-06-09T03:00:38.4659283Z       ],
2026-06-09T03:00:38.4659369Z       "stages": {
2026-06-09T03:00:38.4659451Z         "doc": {
2026-06-09T03:00:38.4659540Z           "complete": false,
2026-06-09T03:00:38.4659650Z           "evidence": []
2026-06-09T03:00:38.4659728Z         },
2026-06-09T03:00:38.4659813Z         "impl": {
2026-06-09T03:00:38.4659902Z           "complete": true,
2026-06-09T03:00:38.4660004Z           "evidence": [
2026-06-09T03:00:38.4660080Z             {
2026-06-09T03:00:38.4660212Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4660299Z               "line": 34
2026-06-09T03:00:38.4660381Z             }
2026-06-09T03:00:38.4660485Z           ]
2026-06-09T03:00:38.4660566Z         },
2026-06-09T03:00:38.4660647Z         "int": {
2026-06-09T03:00:38.4660738Z           "complete": false,
2026-06-09T03:00:38.4660819Z           "evidence": []
2026-06-09T03:00:38.4660905Z         },
2026-06-09T03:00:38.4660982Z         "unit": {
2026-06-09T03:00:38.4661071Z           "complete": true,
2026-06-09T03:00:38.4661157Z           "evidence": [
2026-06-09T03:00:38.4661238Z             {
2026-06-09T03:00:38.4661377Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4661466Z               "line": 188
2026-06-09T03:00:38.4661551Z             },
2026-06-09T03:00:38.4661628Z             {
2026-06-09T03:00:38.4661759Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4661845Z               "line": 200
2026-06-09T03:00:38.4661926Z             },
2026-06-09T03:00:38.4662003Z             {
2026-06-09T03:00:38.4662131Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4662217Z               "line": 211
2026-06-09T03:00:38.4662299Z             },
2026-06-09T03:00:38.4662380Z             {
2026-06-09T03:00:38.4662502Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4662590Z               "line": 253
2026-06-09T03:00:38.4662675Z             },
2026-06-09T03:00:38.4662755Z             {
2026-06-09T03:00:38.4662890Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4663075Z               "line": 277
2026-06-09T03:00:38.4663244Z             },
2026-06-09T03:00:38.4663323Z             {
2026-06-09T03:00:38.4663457Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4663544Z               "line": 300
2026-06-09T03:00:38.4663624Z             },
2026-06-09T03:00:38.4663704Z             {
2026-06-09T03:00:38.4663829Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T03:00:38.4663911Z               "line": 316
2026-06-09T03:00:38.4663990Z             }
2026-06-09T03:00:38.4664071Z           ]
2026-06-09T03:00:38.4664151Z         }
2026-06-09T03:00:38.4664233Z       }
2026-06-09T03:00:38.4664321Z     },
2026-06-09T03:00:38.4664402Z     {
2026-06-09T03:00:38.4664512Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-09T03:00:38.4665022Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-09T03:00:38.4665122Z       "requiredStages": [
2026-06-09T03:00:38.4665204Z         "impl",
2026-06-09T03:00:38.4665294Z         "unit"
2026-06-09T03:00:38.4665374Z       ],
2026-06-09T03:00:38.4665457Z       "stages": {
2026-06-09T03:00:38.4665538Z         "doc": {
2026-06-09T03:00:38.4665628Z           "complete": false,
2026-06-09T03:00:38.4665718Z           "evidence": []
2026-06-09T03:00:38.4665800Z         },
2026-06-09T03:00:38.4665881Z         "impl": {
2026-06-09T03:00:38.4665971Z           "complete": true,
2026-06-09T03:00:38.4666057Z           "evidence": [
2026-06-09T03:00:38.4666139Z             {
2026-06-09T03:00:38.4666261Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4666343Z               "line": 29
2026-06-09T03:00:38.4666426Z             },
2026-06-09T03:00:38.4666506Z             {
2026-06-09T03:00:38.4666643Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4666731Z               "line": 174
2026-06-09T03:00:38.4666825Z             },
2026-06-09T03:00:38.4666910Z             {
2026-06-09T03:00:38.4667106Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4667196Z               "line": 194
2026-06-09T03:00:38.4667276Z             },
2026-06-09T03:00:38.4667353Z             {
2026-06-09T03:00:38.4667463Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4667548Z               "line": 222
2026-06-09T03:00:38.4667629Z             }
2026-06-09T03:00:38.4667706Z           ]
2026-06-09T03:00:38.4667787Z         },
2026-06-09T03:00:38.4667868Z         "int": {
2026-06-09T03:00:38.4667958Z           "complete": false,
2026-06-09T03:00:38.4668045Z           "evidence": []
2026-06-09T03:00:38.4668125Z         },
2026-06-09T03:00:38.4668206Z         "unit": {
2026-06-09T03:00:38.4668292Z           "complete": true,
2026-06-09T03:00:38.4668379Z           "evidence": [
2026-06-09T03:00:38.4668459Z             {
2026-06-09T03:00:38.4668573Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4668660Z               "line": 329
2026-06-09T03:00:38.4668741Z             },
2026-06-09T03:00:38.4668821Z             {
2026-06-09T03:00:38.4668927Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4669018Z               "line": 344
2026-06-09T03:00:38.4669093Z             },
2026-06-09T03:00:38.4669174Z             {
2026-06-09T03:00:38.4669281Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4669366Z               "line": 417
2026-06-09T03:00:38.4669445Z             },
2026-06-09T03:00:38.4669526Z             {
2026-06-09T03:00:38.4669631Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4669716Z               "line": 433
2026-06-09T03:00:38.4669795Z             },
2026-06-09T03:00:38.4669871Z             {
2026-06-09T03:00:38.4669978Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4670064Z               "line": 492
2026-06-09T03:00:38.4670330Z             },
2026-06-09T03:00:38.4672662Z             {
2026-06-09T03:00:38.4672815Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4672911Z               "line": 506
2026-06-09T03:00:38.4672996Z             },
2026-06-09T03:00:38.4673082Z             {
2026-06-09T03:00:38.4673206Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4673292Z               "line": 517
2026-06-09T03:00:38.4673378Z             },
2026-06-09T03:00:38.4673460Z             {
2026-06-09T03:00:38.4673583Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4673668Z               "line": 528
2026-06-09T03:00:38.4673751Z             }
2026-06-09T03:00:38.4673832Z           ]
2026-06-09T03:00:38.4673912Z         }
2026-06-09T03:00:38.4673998Z       }
2026-06-09T03:00:38.4674075Z     },
2026-06-09T03:00:38.4674156Z     {
2026-06-09T03:00:38.4674279Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-09T03:00:38.4674962Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-09T03:00:38.4675067Z       "requiredStages": [
2026-06-09T03:00:38.4675149Z         "impl",
2026-06-09T03:00:38.4675234Z         "unit"
2026-06-09T03:00:38.4675315Z       ],
2026-06-09T03:00:38.4675402Z       "stages": {
2026-06-09T03:00:38.4675488Z         "doc": {
2026-06-09T03:00:38.4675577Z           "complete": false,
2026-06-09T03:00:38.4675664Z           "evidence": []
2026-06-09T03:00:38.4675745Z         },
2026-06-09T03:00:38.4675830Z         "impl": {
2026-06-09T03:00:38.4675921Z           "complete": true,
2026-06-09T03:00:38.4676012Z           "evidence": [
2026-06-09T03:00:38.4676102Z             {
2026-06-09T03:00:38.4676240Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4676327Z               "line": 27
2026-06-09T03:00:38.4676408Z             },
2026-06-09T03:00:38.4676502Z             {
2026-06-09T03:00:38.4676632Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4676722Z               "line": 110
2026-06-09T03:00:38.4676808Z             },
2026-06-09T03:00:38.4676884Z             {
2026-06-09T03:00:38.4677103Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4677189Z               "line": 153
2026-06-09T03:00:38.4677266Z             },
2026-06-09T03:00:38.4677362Z             {
2026-06-09T03:00:38.4677484Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4677569Z               "line": 182
2026-06-09T03:00:38.4677651Z             },
2026-06-09T03:00:38.4677732Z             {
2026-06-09T03:00:38.4677869Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4677956Z               "line": 31
2026-06-09T03:00:38.4678037Z             },
2026-06-09T03:00:38.4678123Z             {
2026-06-09T03:00:38.4678267Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4678362Z               "line": 113
2026-06-09T03:00:38.4678442Z             },
2026-06-09T03:00:38.4678523Z             {
2026-06-09T03:00:38.4678662Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4678743Z               "line": 138
2026-06-09T03:00:38.4678828Z             }
2026-06-09T03:00:38.4678910Z           ]
2026-06-09T03:00:38.4678986Z         },
2026-06-09T03:00:38.4679072Z         "int": {
2026-06-09T03:00:38.4679162Z           "complete": false,
2026-06-09T03:00:38.4679249Z           "evidence": []
2026-06-09T03:00:38.4679329Z         },
2026-06-09T03:00:38.4679410Z         "unit": {
2026-06-09T03:00:38.4679501Z           "complete": true,
2026-06-09T03:00:38.4679588Z           "evidence": [
2026-06-09T03:00:38.4679668Z             {
2026-06-09T03:00:38.4679787Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4679874Z               "line": 261
2026-06-09T03:00:38.4680186Z             },
2026-06-09T03:00:38.4680272Z             {
2026-06-09T03:00:38.4680393Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4680475Z               "line": 276
2026-06-09T03:00:38.4680557Z             },
2026-06-09T03:00:38.4680638Z             {
2026-06-09T03:00:38.4680756Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4680848Z               "line": 293
2026-06-09T03:00:38.4680928Z             },
2026-06-09T03:00:38.4681009Z             {
2026-06-09T03:00:38.4681129Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4681215Z               "line": 310
2026-06-09T03:00:38.4681300Z             },
2026-06-09T03:00:38.4681381Z             {
2026-06-09T03:00:38.4681501Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4681586Z               "line": 327
2026-06-09T03:00:38.4681666Z             },
2026-06-09T03:00:38.4681748Z             {
2026-06-09T03:00:38.4681886Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.4681972Z               "line": 366
2026-06-09T03:00:38.4682058Z             },
2026-06-09T03:00:38.4682140Z             {
2026-06-09T03:00:38.4682278Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4682363Z               "line": 179
2026-06-09T03:00:38.4682446Z             },
2026-06-09T03:00:38.4682526Z             {
2026-06-09T03:00:38.4682658Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4682743Z               "line": 194
2026-06-09T03:00:38.4682829Z             },
2026-06-09T03:00:38.4682908Z             {
2026-06-09T03:00:38.4683037Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4683118Z               "line": 204
2026-06-09T03:00:38.4683204Z             },
2026-06-09T03:00:38.4683280Z             {
2026-06-09T03:00:38.4683419Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4683510Z               "line": 259
2026-06-09T03:00:38.4683589Z             },
2026-06-09T03:00:38.4683671Z             {
2026-06-09T03:00:38.4683795Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4683885Z               "line": 269
2026-06-09T03:00:38.4683966Z             },
2026-06-09T03:00:38.4684049Z             {
2026-06-09T03:00:38.4684177Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.4684258Z               "line": 283
2026-06-09T03:00:38.4684344Z             }
2026-06-09T03:00:38.4684425Z           ]
2026-06-09T03:00:38.4684506Z         }
2026-06-09T03:00:38.4684596Z       }
2026-06-09T03:00:38.4684674Z     },
2026-06-09T03:00:38.4684758Z     {
2026-06-09T03:00:38.4684868Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-09T03:00:38.4685050Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-09T03:00:38.4685148Z       "requiredStages": [],
2026-06-09T03:00:38.4685243Z       "stages": {
2026-06-09T03:00:38.4685330Z         "doc": {
2026-06-09T03:00:38.4685418Z           "complete": false,
2026-06-09T03:00:38.4685508Z           "evidence": []
2026-06-09T03:00:38.4685584Z         },
2026-06-09T03:00:38.4685666Z         "impl": {
2026-06-09T03:00:38.4685756Z           "complete": false,
2026-06-09T03:00:38.4685842Z           "evidence": []
2026-06-09T03:00:38.4685923Z         },
2026-06-09T03:00:38.4686004Z         "int": {
2026-06-09T03:00:38.4686090Z           "complete": false,
2026-06-09T03:00:38.4686175Z           "evidence": []
2026-06-09T03:00:38.4686257Z         },
2026-06-09T03:00:38.4686338Z         "unit": {
2026-06-09T03:00:38.4686424Z           "complete": false,
2026-06-09T03:00:38.4686514Z           "evidence": []
2026-06-09T03:00:38.4686601Z         }
2026-06-09T03:00:38.4686696Z       }
2026-06-09T03:00:38.4686776Z     },
2026-06-09T03:00:38.4686858Z     {
2026-06-09T03:00:38.4687168Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-09T03:00:38.4688058Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-09T03:00:38.4688153Z       "requiredStages": [
2026-06-09T03:00:38.4688236Z         "impl",
2026-06-09T03:00:38.4688316Z         "unit"
2026-06-09T03:00:38.4688396Z       ],
2026-06-09T03:00:38.4688483Z       "stages": {
2026-06-09T03:00:38.4688565Z         "doc": {
2026-06-09T03:00:38.4688650Z           "complete": false,
2026-06-09T03:00:38.4688739Z           "evidence": []
2026-06-09T03:00:38.4688817Z         },
2026-06-09T03:00:38.4688903Z         "impl": {
2026-06-09T03:00:38.4688988Z           "complete": true,
2026-06-09T03:00:38.4689078Z           "evidence": [
2026-06-09T03:00:38.4689161Z             {
2026-06-09T03:00:38.4689294Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4689393Z               "line": 26
2026-06-09T03:00:38.4689471Z             },
2026-06-09T03:00:38.4689556Z             {
2026-06-09T03:00:38.4689675Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4689761Z               "line": 95
2026-06-09T03:00:38.4689847Z             },
2026-06-09T03:00:38.4689922Z             {
2026-06-09T03:00:38.4690037Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4690119Z               "line": 166
2026-06-09T03:00:38.4690204Z             },
2026-06-09T03:00:38.4690284Z             {
2026-06-09T03:00:38.4690401Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4690486Z               "line": 19
2026-06-09T03:00:38.4690566Z             },
2026-06-09T03:00:38.4690646Z             {
2026-06-09T03:00:38.4690752Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4690841Z               "line": 50
2026-06-09T03:00:38.4690916Z             },
2026-06-09T03:00:38.4691011Z             {
2026-06-09T03:00:38.4691122Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T03:00:38.4691203Z               "line": 18
2026-06-09T03:00:38.4691292Z             },
2026-06-09T03:00:38.4691369Z             {
2026-06-09T03:00:38.4691474Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T03:00:38.4691560Z               "line": 71
2026-06-09T03:00:38.4691641Z             },
2026-06-09T03:00:38.4691722Z             {
2026-06-09T03:00:38.4691831Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4691916Z               "line": 70
2026-06-09T03:00:38.4691994Z             }
2026-06-09T03:00:38.4692075Z           ]
2026-06-09T03:00:38.4692146Z         },
2026-06-09T03:00:38.4692227Z         "int": {
2026-06-09T03:00:38.4692308Z           "complete": false,
2026-06-09T03:00:38.4692386Z           "evidence": []
2026-06-09T03:00:38.4692461Z         },
2026-06-09T03:00:38.4692542Z         "unit": {
2026-06-09T03:00:38.4692662Z           "complete": true,
2026-06-09T03:00:38.4692780Z           "evidence": [
2026-06-09T03:00:38.4692866Z             {
2026-06-09T03:00:38.4692982Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4693067Z               "line": 289
2026-06-09T03:00:38.4693146Z             },
2026-06-09T03:00:38.4693227Z             {
2026-06-09T03:00:38.4693342Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4693426Z               "line": 308
2026-06-09T03:00:38.4693506Z             },
2026-06-09T03:00:38.4693587Z             {
2026-06-09T03:00:38.4693698Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4693792Z               "line": 336
2026-06-09T03:00:38.4693868Z             },
2026-06-09T03:00:38.4693950Z             {
2026-06-09T03:00:38.4694060Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4694149Z               "line": 399
2026-06-09T03:00:38.4694231Z             },
2026-06-09T03:00:38.4694450Z             {
2026-06-09T03:00:38.4694570Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4694656Z               "line": 410
2026-06-09T03:00:38.4694737Z             },
2026-06-09T03:00:38.4694818Z             {
2026-06-09T03:00:38.4694929Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4695013Z               "line": 441
2026-06-09T03:00:38.4695094Z             },
2026-06-09T03:00:38.4695175Z             {
2026-06-09T03:00:38.4695291Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.4695375Z               "line": 452
2026-06-09T03:00:38.4695452Z             },
2026-06-09T03:00:38.4695534Z             {
2026-06-09T03:00:38.4695643Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4695728Z               "line": 77
2026-06-09T03:00:38.4695808Z             },
2026-06-09T03:00:38.4695885Z             {
2026-06-09T03:00:38.4695997Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4696097Z               "line": 97
2026-06-09T03:00:38.4696173Z             },
2026-06-09T03:00:38.4696260Z             {
2026-06-09T03:00:38.4696373Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4696454Z               "line": 112
2026-06-09T03:00:38.4696537Z             },
2026-06-09T03:00:38.4696622Z             {
2026-06-09T03:00:38.4696750Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4696832Z               "line": 123
2026-06-09T03:00:38.4696913Z             },
2026-06-09T03:00:38.4697079Z             {
2026-06-09T03:00:38.4697190Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4697275Z               "line": 130
2026-06-09T03:00:38.4697355Z             },
2026-06-09T03:00:38.4697437Z             {
2026-06-09T03:00:38.4697547Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T03:00:38.4697632Z               "line": 145
2026-06-09T03:00:38.4697713Z             },
2026-06-09T03:00:38.4697810Z             {
2026-06-09T03:00:38.4697908Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T03:00:38.4697999Z               "line": 115
2026-06-09T03:00:38.4698077Z             },
2026-06-09T03:00:38.4698158Z             {
2026-06-09T03:00:38.4698261Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T03:00:38.4698343Z               "line": 130
2026-06-09T03:00:38.4698425Z             },
2026-06-09T03:00:38.4698500Z             {
2026-06-09T03:00:38.4698614Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T03:00:38.4698694Z               "line": 336
2026-06-09T03:00:38.4698776Z             }
2026-06-09T03:00:38.4698857Z           ]
2026-06-09T03:00:38.4698938Z         }
2026-06-09T03:00:38.4699014Z       }
2026-06-09T03:00:38.4699096Z     },
2026-06-09T03:00:38.4699177Z     {
2026-06-09T03:00:38.4699290Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-09T03:00:38.4699539Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-09T03:00:38.4699633Z       "requiredStages": [
2026-06-09T03:00:38.4699716Z         "impl",
2026-06-09T03:00:38.4699806Z         "unit"
2026-06-09T03:00:38.4699882Z       ],
2026-06-09T03:00:38.4699968Z       "stages": {
2026-06-09T03:00:38.4700050Z         "doc": {
2026-06-09T03:00:38.4700140Z           "complete": true,
2026-06-09T03:00:38.4700225Z           "evidence": [
2026-06-09T03:00:38.4700302Z             {
2026-06-09T03:00:38.4700407Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4700487Z               "line": 137
2026-06-09T03:00:38.4700573Z             }
2026-06-09T03:00:38.4700656Z           ]
2026-06-09T03:00:38.4700736Z         },
2026-06-09T03:00:38.4700816Z         "impl": {
2026-06-09T03:00:38.4700902Z           "complete": true,
2026-06-09T03:00:38.4700990Z           "evidence": [
2026-06-09T03:00:38.4701070Z             {
2026-06-09T03:00:38.4701178Z               "path": "crates/spt-store/src/db.rs",
2026-06-09T03:00:38.4701368Z               "line": 29
2026-06-09T03:00:38.4701542Z             },
2026-06-09T03:00:38.4701619Z             {
2026-06-09T03:00:38.4701729Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.4701814Z               "line": 101
2026-06-09T03:00:38.4701896Z             },
2026-06-09T03:00:38.4701977Z             {
2026-06-09T03:00:38.4702096Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4702176Z               "line": 30
2026-06-09T03:00:38.4702259Z             },
2026-06-09T03:00:38.4702340Z             {
2026-06-09T03:00:38.4702453Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4702539Z               "line": 48
2026-06-09T03:00:38.4702616Z             }
2026-06-09T03:00:38.4702701Z           ]
2026-06-09T03:00:38.4702778Z         },
2026-06-09T03:00:38.4702864Z         "int": {
2026-06-09T03:00:38.4702950Z           "complete": false,
2026-06-09T03:00:38.4703030Z           "evidence": []
2026-06-09T03:00:38.4703111Z         },
2026-06-09T03:00:38.4703188Z         "unit": {
2026-06-09T03:00:38.4703275Z           "complete": true,
2026-06-09T03:00:38.4703355Z           "evidence": [
2026-06-09T03:00:38.4703431Z             {
2026-06-09T03:00:38.4703542Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4703655Z               "line": 162
2026-06-09T03:00:38.4703740Z             }
2026-06-09T03:00:38.4703820Z           ]
2026-06-09T03:00:38.4703902Z         }
2026-06-09T03:00:38.4703981Z       }
2026-06-09T03:00:38.4704061Z     },
2026-06-09T03:00:38.4704142Z     {
2026-06-09T03:00:38.4704262Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-09T03:00:38.4704630Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-09T03:00:38.4704719Z       "requiredStages": [
2026-06-09T03:00:38.4704806Z         "doc",
2026-06-09T03:00:38.4704887Z         "impl",
2026-06-09T03:00:38.4704968Z         "unit"
2026-06-09T03:00:38.4705063Z       ],
2026-06-09T03:00:38.4705150Z       "stages": {
2026-06-09T03:00:38.4705240Z         "doc": {
2026-06-09T03:00:38.4705330Z           "complete": true,
2026-06-09T03:00:38.4705416Z           "evidence": [
2026-06-09T03:00:38.4705498Z             {
2026-06-09T03:00:38.4705606Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4705687Z               "line": 149
2026-06-09T03:00:38.4705770Z             }
2026-06-09T03:00:38.4705851Z           ]
2026-06-09T03:00:38.4705930Z         },
2026-06-09T03:00:38.4706012Z         "impl": {
2026-06-09T03:00:38.4706103Z           "complete": true,
2026-06-09T03:00:38.4706189Z           "evidence": [
2026-06-09T03:00:38.4706268Z             {
2026-06-09T03:00:38.4706387Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4706474Z               "line": 22
2026-06-09T03:00:38.4706557Z             }
2026-06-09T03:00:38.4706638Z           ]
2026-06-09T03:00:38.4706719Z         },
2026-06-09T03:00:38.4706801Z         "int": {
2026-06-09T03:00:38.4706909Z           "complete": false,
2026-06-09T03:00:38.4707082Z           "evidence": []
2026-06-09T03:00:38.4707163Z         },
2026-06-09T03:00:38.4707248Z         "unit": {
2026-06-09T03:00:38.4707354Z           "complete": true,
2026-06-09T03:00:38.4707435Z           "evidence": [
2026-06-09T03:00:38.4707521Z             {
2026-06-09T03:00:38.4707634Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4707726Z               "line": 298
2026-06-09T03:00:38.4707806Z             }
2026-06-09T03:00:38.4707887Z           ]
2026-06-09T03:00:38.4707968Z         }
2026-06-09T03:00:38.4708051Z       }
2026-06-09T03:00:38.4708130Z     },
2026-06-09T03:00:38.4708211Z     {
2026-06-09T03:00:38.4708327Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-09T03:00:38.4708751Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-09T03:00:38.4708947Z       "requiredStages": [
2026-06-09T03:00:38.4709131Z         "impl",
2026-06-09T03:00:38.4709211Z         "unit"
2026-06-09T03:00:38.4709293Z       ],
2026-06-09T03:00:38.4709380Z       "stages": {
2026-06-09T03:00:38.4709460Z         "doc": {
2026-06-09T03:00:38.4709550Z           "complete": true,
2026-06-09T03:00:38.4709637Z           "evidence": [
2026-06-09T03:00:38.4709718Z             {
2026-06-09T03:00:38.4709817Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4709903Z               "line": 143
2026-06-09T03:00:38.4709985Z             }
2026-06-09T03:00:38.4710071Z           ]
2026-06-09T03:00:38.4710151Z         },
2026-06-09T03:00:38.4710233Z         "impl": {
2026-06-09T03:00:38.4710328Z           "complete": true,
2026-06-09T03:00:38.4710414Z           "evidence": [
2026-06-09T03:00:38.4710499Z             {
2026-06-09T03:00:38.4710615Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4710700Z               "line": 540
2026-06-09T03:00:38.4710781Z             },
2026-06-09T03:00:38.4710881Z             {
2026-06-09T03:00:38.4711009Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4711095Z               "line": 184
2026-06-09T03:00:38.4711177Z             },
2026-06-09T03:00:38.4711254Z             {
2026-06-09T03:00:38.4711390Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4711492Z               "line": 282
2026-06-09T03:00:38.4711574Z             },
2026-06-09T03:00:38.4711653Z             {
2026-06-09T03:00:38.4711761Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T03:00:38.4711847Z               "line": 15
2026-06-09T03:00:38.4711928Z             }
2026-06-09T03:00:38.4712012Z           ]
2026-06-09T03:00:38.4712093Z         },
2026-06-09T03:00:38.4712174Z         "int": {
2026-06-09T03:00:38.4712270Z           "complete": false,
2026-06-09T03:00:38.4712355Z           "evidence": []
2026-06-09T03:00:38.4712441Z         },
2026-06-09T03:00:38.4712523Z         "unit": {
2026-06-09T03:00:38.4712628Z           "complete": true,
2026-06-09T03:00:38.4712722Z           "evidence": [
2026-06-09T03:00:38.4712804Z             {
2026-06-09T03:00:38.4712928Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4713013Z               "line": 856
2026-06-09T03:00:38.4713095Z             },
2026-06-09T03:00:38.4713172Z             {
2026-06-09T03:00:38.4713300Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-09T03:00:38.4713385Z               "line": 88
2026-06-09T03:00:38.4713468Z             },
2026-06-09T03:00:38.4713548Z             {
2026-06-09T03:00:38.4713662Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4713748Z               "line": 802
2026-06-09T03:00:38.4713830Z             },
2026-06-09T03:00:38.4713910Z             {
2026-06-09T03:00:38.4714029Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4714116Z               "line": 821
2026-06-09T03:00:38.4714206Z             },
2026-06-09T03:00:38.4714290Z             {
2026-06-09T03:00:38.4714410Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.4714495Z               "line": 278
2026-06-09T03:00:38.4714575Z             },
2026-06-09T03:00:38.4714660Z             {
2026-06-09T03:00:38.4714765Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T03:00:38.4714851Z               "line": 77
2026-06-09T03:00:38.4714932Z             },
2026-06-09T03:00:38.4715013Z             {
2026-06-09T03:00:38.4715118Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T03:00:38.4715204Z               "line": 94
2026-06-09T03:00:38.4715284Z             },
2026-06-09T03:00:38.4715366Z             {
2026-06-09T03:00:38.4715480Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T03:00:38.4715566Z               "line": 114
2026-06-09T03:00:38.4715652Z             }
2026-06-09T03:00:38.4715738Z           ]
2026-06-09T03:00:38.4715819Z         }
2026-06-09T03:00:38.4715981Z       }
2026-06-09T03:00:38.4716124Z     },
2026-06-09T03:00:38.4716205Z     {
2026-06-09T03:00:38.4716320Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-09T03:00:38.4717681Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-09T03:00:38.4717780Z       "requiredStages": [
2026-06-09T03:00:38.4717856Z         "doc",
2026-06-09T03:00:38.4717942Z         "impl",
2026-06-09T03:00:38.4718023Z         "unit"
2026-06-09T03:00:38.4718104Z       ],
2026-06-09T03:00:38.4718190Z       "stages": {
2026-06-09T03:00:38.4718267Z         "doc": {
2026-06-09T03:00:38.4718361Z           "complete": true,
2026-06-09T03:00:38.4718471Z           "evidence": [
2026-06-09T03:00:38.4718553Z             {
2026-06-09T03:00:38.4718658Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4718743Z               "line": 155
2026-06-09T03:00:38.4718824Z             }
2026-06-09T03:00:38.4718906Z           ]
2026-06-09T03:00:38.4718987Z         },
2026-06-09T03:00:38.4719072Z         "impl": {
2026-06-09T03:00:38.4719158Z           "complete": true,
2026-06-09T03:00:38.4719245Z           "evidence": [
2026-06-09T03:00:38.4719329Z             {
2026-06-09T03:00:38.4719449Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4719531Z               "line": 394
2026-06-09T03:00:38.4719617Z             },
2026-06-09T03:00:38.4719696Z             {
2026-06-09T03:00:38.4719819Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4719901Z               "line": 484
2026-06-09T03:00:38.4719983Z             },
2026-06-09T03:00:38.4720067Z             {
2026-06-09T03:00:38.4720197Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4720288Z               "line": 491
2026-06-09T03:00:38.4720368Z             },
2026-06-09T03:00:38.4720449Z             {
2026-06-09T03:00:38.4720568Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4720654Z               "line": 211
2026-06-09T03:00:38.4720735Z             }
2026-06-09T03:00:38.4720812Z           ]
2026-06-09T03:00:38.4720897Z         },
2026-06-09T03:00:38.4720978Z         "int": {
2026-06-09T03:00:38.4721069Z           "complete": false,
2026-06-09T03:00:38.4721161Z           "evidence": []
2026-06-09T03:00:38.4721245Z         },
2026-06-09T03:00:38.4721331Z         "unit": {
2026-06-09T03:00:38.4721422Z           "complete": true,
2026-06-09T03:00:38.4721509Z           "evidence": [
2026-06-09T03:00:38.4721588Z             {
2026-06-09T03:00:38.4721708Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4721800Z               "line": 1484
2026-06-09T03:00:38.4721898Z             },
2026-06-09T03:00:38.4721984Z             {
2026-06-09T03:00:38.4722100Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4722185Z               "line": 1542
2026-06-09T03:00:38.4722265Z             },
2026-06-09T03:00:38.4722345Z             {
2026-06-09T03:00:38.4722461Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4722554Z               "line": 834
2026-06-09T03:00:38.4722634Z             }
2026-06-09T03:00:38.4722715Z           ]
2026-06-09T03:00:38.4722797Z         }
2026-06-09T03:00:38.4722878Z       }
2026-06-09T03:00:38.4722963Z     },
2026-06-09T03:00:38.4723039Z     {
2026-06-09T03:00:38.4723155Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-09T03:00:38.4723335Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-09T03:00:38.4723431Z       "requiredStages": [
2026-06-09T03:00:38.4723517Z         "impl",
2026-06-09T03:00:38.4723597Z         "unit"
2026-06-09T03:00:38.4723864Z       ],
2026-06-09T03:00:38.4723950Z       "stages": {
2026-06-09T03:00:38.4724028Z         "doc": {
2026-06-09T03:00:38.4724117Z           "complete": false,
2026-06-09T03:00:38.4724203Z           "evidence": []
2026-06-09T03:00:38.4724289Z         },
2026-06-09T03:00:38.4724371Z         "impl": {
2026-06-09T03:00:38.4724460Z           "complete": true,
2026-06-09T03:00:38.4724546Z           "evidence": [
2026-06-09T03:00:38.4724628Z             {
2026-06-09T03:00:38.4724738Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T03:00:38.4724832Z               "line": 15
2026-06-09T03:00:38.4724931Z             },
2026-06-09T03:00:38.4725022Z             {
2026-06-09T03:00:38.4725139Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4725229Z               "line": 55
2026-06-09T03:00:38.4725306Z             },
2026-06-09T03:00:38.4725392Z             {
2026-06-09T03:00:38.4725501Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4725602Z               "line": 66
2026-06-09T03:00:38.4725683Z             },
2026-06-09T03:00:38.4725764Z             {
2026-06-09T03:00:38.4725883Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4725965Z               "line": 115
2026-06-09T03:00:38.4726050Z             },
2026-06-09T03:00:38.4726131Z             {
2026-06-09T03:00:38.4726241Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4726332Z               "line": 138
2026-06-09T03:00:38.4726413Z             }
2026-06-09T03:00:38.4726493Z           ]
2026-06-09T03:00:38.4726576Z         },
2026-06-09T03:00:38.4726661Z         "int": {
2026-06-09T03:00:38.4726765Z           "complete": false,
2026-06-09T03:00:38.4726851Z           "evidence": []
2026-06-09T03:00:38.4726933Z         },
2026-06-09T03:00:38.4727104Z         "unit": {
2026-06-09T03:00:38.4727200Z           "complete": true,
2026-06-09T03:00:38.4727281Z           "evidence": [
2026-06-09T03:00:38.4727375Z             {
2026-06-09T03:00:38.4727488Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T03:00:38.4727579Z               "line": 149
2026-06-09T03:00:38.4727659Z             },
2026-06-09T03:00:38.4727739Z             {
2026-06-09T03:00:38.4727849Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T03:00:38.4727935Z               "line": 155
2026-06-09T03:00:38.4728021Z             },
2026-06-09T03:00:38.4728101Z             {
2026-06-09T03:00:38.4728207Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T03:00:38.4728298Z               "line": 169
2026-06-09T03:00:38.4728378Z             },
2026-06-09T03:00:38.4728459Z             {
2026-06-09T03:00:38.4728565Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T03:00:38.4728651Z               "line": 178
2026-06-09T03:00:38.4728730Z             },
2026-06-09T03:00:38.4728813Z             {
2026-06-09T03:00:38.4728922Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4729021Z               "line": 195
2026-06-09T03:00:38.4729108Z             },
2026-06-09T03:00:38.4729185Z             {
2026-06-09T03:00:38.4729298Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4729384Z               "line": 208
2026-06-09T03:00:38.4729466Z             },
2026-06-09T03:00:38.4729542Z             {
2026-06-09T03:00:38.4729656Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4729747Z               "line": 271
2026-06-09T03:00:38.4729829Z             },
2026-06-09T03:00:38.4729913Z             {
2026-06-09T03:00:38.4730023Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4730105Z               "line": 290
2026-06-09T03:00:38.4730186Z             },
2026-06-09T03:00:38.4730270Z             {
2026-06-09T03:00:38.4730384Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4730467Z               "line": 319
2026-06-09T03:00:38.4730557Z             }
2026-06-09T03:00:38.4730733Z           ]
2026-06-09T03:00:38.4730900Z         }
2026-06-09T03:00:38.4730980Z       }
2026-06-09T03:00:38.4731067Z     },
2026-06-09T03:00:38.4731148Z     {
2026-06-09T03:00:38.4731257Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-09T03:00:38.4731520Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-09T03:00:38.4731614Z       "requiredStages": [
2026-06-09T03:00:38.4731696Z         "impl",
2026-06-09T03:00:38.4731777Z         "unit",
2026-06-09T03:00:38.4731863Z         "int"
2026-06-09T03:00:38.4731949Z       ],
2026-06-09T03:00:38.4732036Z       "stages": {
2026-06-09T03:00:38.4732120Z         "doc": {
2026-06-09T03:00:38.4732210Z           "complete": false,
2026-06-09T03:00:38.4732297Z           "evidence": []
2026-06-09T03:00:38.4732379Z         },
2026-06-09T03:00:38.4732463Z         "impl": {
2026-06-09T03:00:38.4732559Z           "complete": true,
2026-06-09T03:00:38.4732646Z           "evidence": [
2026-06-09T03:00:38.4732741Z             {
2026-06-09T03:00:38.4732863Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4732954Z               "line": 269
2026-06-09T03:00:38.4733035Z             },
2026-06-09T03:00:38.4733118Z             {
2026-06-09T03:00:38.4733227Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4733314Z               "line": 578
2026-06-09T03:00:38.4733395Z             },
2026-06-09T03:00:38.4733475Z             {
2026-06-09T03:00:38.4733586Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4733672Z               "line": 601
2026-06-09T03:00:38.4733748Z             },
2026-06-09T03:00:38.4733833Z             {
2026-06-09T03:00:38.4733939Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.4734024Z               "line": 625
2026-06-09T03:00:38.4734105Z             },
2026-06-09T03:00:38.4734186Z             {
2026-06-09T03:00:38.4734306Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4734410Z               "line": 492
2026-06-09T03:00:38.4734491Z             },
2026-06-09T03:00:38.4734573Z             {
2026-06-09T03:00:38.4734682Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4734773Z               "line": 580
2026-06-09T03:00:38.4734854Z             },
2026-06-09T03:00:38.4734936Z             {
2026-06-09T03:00:38.4735044Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4735131Z               "line": 690
2026-06-09T03:00:38.4735217Z             },
2026-06-09T03:00:38.4735298Z             {
2026-06-09T03:00:38.4735406Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.4735496Z               "line": 738
2026-06-09T03:00:38.4735578Z             },
2026-06-09T03:00:38.4735661Z             {
2026-06-09T03:00:38.4735775Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T03:00:38.4735857Z               "line": 46
2026-06-09T03:00:38.4735943Z             },
2026-06-09T03:00:38.4736028Z             {
2026-06-09T03:00:38.4736152Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T03:00:38.4736238Z               "line": 167
2026-06-09T03:00:38.4736319Z             },
2026-06-09T03:00:38.4736400Z             {
2026-06-09T03:00:38.4736506Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-09T03:00:38.4736596Z               "line": 71
2026-06-09T03:00:38.4738676Z             },
2026-06-09T03:00:38.4738777Z             {
2026-06-09T03:00:38.4738905Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4738995Z               "line": 134
2026-06-09T03:00:38.4739077Z             },
2026-06-09T03:00:38.4739153Z             {
2026-06-09T03:00:38.4739281Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4739363Z               "line": 180
2026-06-09T03:00:38.4739444Z             }
2026-06-09T03:00:38.4739525Z           ]
2026-06-09T03:00:38.4739605Z         },
2026-06-09T03:00:38.4739688Z         "int": {
2026-06-09T03:00:38.4740008Z           "complete": true,
2026-06-09T03:00:38.4740098Z           "evidence": [
2026-06-09T03:00:38.4740177Z             {
2026-06-09T03:00:38.4740312Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-09T03:00:38.4740398Z               "line": 27
2026-06-09T03:00:38.4740473Z             },
2026-06-09T03:00:38.4740554Z             {
2026-06-09T03:00:38.4740680Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T03:00:38.4740765Z               "line": 129
2026-06-09T03:00:38.4740849Z             },
2026-06-09T03:00:38.4740930Z             {
2026-06-09T03:00:38.4741045Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-09T03:00:38.4741131Z               "line": 200
2026-06-09T03:00:38.4741216Z             }
2026-06-09T03:00:38.4741293Z           ]
2026-06-09T03:00:38.4741374Z         },
2026-06-09T03:00:38.4741451Z         "unit": {
2026-06-09T03:00:38.4741540Z           "complete": true,
2026-06-09T03:00:38.4741627Z           "evidence": [
2026-06-09T03:00:38.4741717Z             {
2026-06-09T03:00:38.4741836Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T03:00:38.4741918Z               "line": 313
2026-06-09T03:00:38.4742000Z             },
2026-06-09T03:00:38.4742080Z             {
2026-06-09T03:00:38.4742189Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T03:00:38.4742271Z               "line": 345
2026-06-09T03:00:38.4742352Z             },
2026-06-09T03:00:38.4742428Z             {
2026-06-09T03:00:38.4742542Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T03:00:38.4742629Z               "line": 366
2026-06-09T03:00:38.4742708Z             },
2026-06-09T03:00:38.4742785Z             {
2026-06-09T03:00:38.4742905Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T03:00:38.4742986Z               "line": 254
2026-06-09T03:00:38.4743066Z             },
2026-06-09T03:00:38.4743148Z             {
2026-06-09T03:00:38.4743264Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-09T03:00:38.4743357Z               "line": 239
2026-06-09T03:00:38.4743437Z             },
2026-06-09T03:00:38.4743519Z             {
2026-06-09T03:00:38.4743628Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-09T03:00:38.4743716Z               "line": 230
2026-06-09T03:00:38.4743792Z             },
2026-06-09T03:00:38.4743874Z             {
2026-06-09T03:00:38.4743984Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4744069Z               "line": 488
2026-06-09T03:00:38.4744151Z             },
2026-06-09T03:00:38.4744227Z             {
2026-06-09T03:00:38.4744336Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.4744417Z               "line": 518
2026-06-09T03:00:38.4744494Z             }
2026-06-09T03:00:38.4744575Z           ]
2026-06-09T03:00:38.4744661Z         }
2026-06-09T03:00:38.4744742Z       }
2026-06-09T03:00:38.4744819Z     },
2026-06-09T03:00:38.4744899Z     {
2026-06-09T03:00:38.4745018Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-09T03:00:38.4745205Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-09T03:00:38.4745295Z       "requiredStages": [
2026-06-09T03:00:38.4745376Z         "impl",
2026-06-09T03:00:38.4745458Z         "unit"
2026-06-09T03:00:38.4745538Z       ],
2026-06-09T03:00:38.4745624Z       "stages": {
2026-06-09T03:00:38.4745705Z         "doc": {
2026-06-09T03:00:38.4745792Z           "complete": false,
2026-06-09T03:00:38.4745881Z           "evidence": []
2026-06-09T03:00:38.4745962Z         },
2026-06-09T03:00:38.4746042Z         "impl": {
2026-06-09T03:00:38.4746128Z           "complete": true,
2026-06-09T03:00:38.4746213Z           "evidence": [
2026-06-09T03:00:38.4746293Z             {
2026-06-09T03:00:38.4746421Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4746508Z               "line": 56
2026-06-09T03:00:38.4746583Z             },
2026-06-09T03:00:38.4746668Z             {
2026-06-09T03:00:38.4746922Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4747099Z               "line": 65
2026-06-09T03:00:38.4747180Z             },
2026-06-09T03:00:38.4747260Z             {
2026-06-09T03:00:38.4747386Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4747466Z               "line": 72
2026-06-09T03:00:38.4747547Z             },
2026-06-09T03:00:38.4747627Z             {
2026-06-09T03:00:38.4747738Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4747819Z               "line": 33
2026-06-09T03:00:38.4747900Z             },
2026-06-09T03:00:38.4747981Z             {
2026-06-09T03:00:38.4748091Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4748176Z               "line": 65
2026-06-09T03:00:38.4748252Z             },
2026-06-09T03:00:38.4748335Z             {
2026-06-09T03:00:38.4748439Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4748533Z               "line": 74
2026-06-09T03:00:38.4748623Z             },
2026-06-09T03:00:38.4748699Z             {
2026-06-09T03:00:38.4748807Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4748887Z               "line": 83
2026-06-09T03:00:38.4748969Z             },
2026-06-09T03:00:38.4749046Z             {
2026-06-09T03:00:38.4749150Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4749240Z               "line": 92
2026-06-09T03:00:38.4749318Z             },
2026-06-09T03:00:38.4749403Z             {
2026-06-09T03:00:38.4749508Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4749594Z               "line": 101
2026-06-09T03:00:38.4749675Z             },
2026-06-09T03:00:38.4749751Z             {
2026-06-09T03:00:38.4749855Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4749938Z               "line": 112
2026-06-09T03:00:38.4750019Z             },
2026-06-09T03:00:38.4750095Z             {
2026-06-09T03:00:38.4750214Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4750300Z               "line": 130
2026-06-09T03:00:38.4750381Z             },
2026-06-09T03:00:38.4750462Z             {
2026-06-09T03:00:38.4750563Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4750648Z               "line": 139
2026-06-09T03:00:38.4750728Z             },
2026-06-09T03:00:38.4750805Z             {
2026-06-09T03:00:38.4750911Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4750996Z               "line": 148
2026-06-09T03:00:38.4751075Z             },
2026-06-09T03:00:38.4751153Z             {
2026-06-09T03:00:38.4751254Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4751339Z               "line": 159
2026-06-09T03:00:38.4751418Z             },
2026-06-09T03:00:38.4751499Z             {
2026-06-09T03:00:38.4751601Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4751686Z               "line": 167
2026-06-09T03:00:38.4751771Z             },
2026-06-09T03:00:38.4751853Z             {
2026-06-09T03:00:38.4751953Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4752039Z               "line": 176
2026-06-09T03:00:38.4752120Z             },
2026-06-09T03:00:38.4752197Z             {
2026-06-09T03:00:38.4752302Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4752386Z               "line": 185
2026-06-09T03:00:38.4752463Z             },
2026-06-09T03:00:38.4752540Z             {
2026-06-09T03:00:38.4752650Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4752734Z               "line": 194
2026-06-09T03:00:38.4752812Z             },
2026-06-09T03:00:38.4752889Z             {
2026-06-09T03:00:38.4752988Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4753074Z               "line": 206
2026-06-09T03:00:38.4753151Z             },
2026-06-09T03:00:38.4753232Z             {
2026-06-09T03:00:38.4753432Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4753635Z               "line": 213
2026-06-09T03:00:38.4753718Z             },
2026-06-09T03:00:38.4753795Z             {
2026-06-09T03:00:38.4753903Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4753988Z               "line": 222
2026-06-09T03:00:38.4754064Z             },
2026-06-09T03:00:38.4754145Z             {
2026-06-09T03:00:38.4754248Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4754334Z               "line": 229
2026-06-09T03:00:38.4754410Z             },
2026-06-09T03:00:38.4754492Z             {
2026-06-09T03:00:38.4754596Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4754677Z               "line": 296
2026-06-09T03:00:38.4754759Z             },
2026-06-09T03:00:38.4754835Z             {
2026-06-09T03:00:38.4754938Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4755020Z               "line": 308
2026-06-09T03:00:38.4755121Z             },
2026-06-09T03:00:38.4755202Z             {
2026-06-09T03:00:38.4755307Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4755388Z               "line": 395
2026-06-09T03:00:38.4755464Z             }
2026-06-09T03:00:38.4755550Z           ]
2026-06-09T03:00:38.4755626Z         },
2026-06-09T03:00:38.4755708Z         "int": {
2026-06-09T03:00:38.4755798Z           "complete": false,
2026-06-09T03:00:38.4755883Z           "evidence": []
2026-06-09T03:00:38.4755960Z         },
2026-06-09T03:00:38.4756042Z         "unit": {
2026-06-09T03:00:38.4756131Z           "complete": true,
2026-06-09T03:00:38.4756208Z           "evidence": [
2026-06-09T03:00:38.4756279Z             {
2026-06-09T03:00:38.4756400Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4756483Z               "line": 477
2026-06-09T03:00:38.4756564Z             },
2026-06-09T03:00:38.4756641Z             {
2026-06-09T03:00:38.4756759Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4756848Z               "line": 518
2026-06-09T03:00:38.4756928Z             },
2026-06-09T03:00:38.4757097Z             {
2026-06-09T03:00:38.4757201Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4757287Z               "line": 531
2026-06-09T03:00:38.4757363Z             },
2026-06-09T03:00:38.4757449Z             {
2026-06-09T03:00:38.4757548Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4757636Z               "line": 617
2026-06-09T03:00:38.4757716Z             }
2026-06-09T03:00:38.4757796Z           ]
2026-06-09T03:00:38.4757873Z         }
2026-06-09T03:00:38.4757951Z       }
2026-06-09T03:00:38.4758030Z     },
2026-06-09T03:00:38.4758107Z     {
2026-06-09T03:00:38.4758212Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-09T03:00:38.4758397Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-09T03:00:38.4758484Z       "requiredStages": [
2026-06-09T03:00:38.4758575Z         "impl",
2026-06-09T03:00:38.4758660Z         "unit"
2026-06-09T03:00:38.4758741Z       ],
2026-06-09T03:00:38.4758817Z       "stages": {
2026-06-09T03:00:38.4758900Z         "doc": {
2026-06-09T03:00:38.4758989Z           "complete": false,
2026-06-09T03:00:38.4759074Z           "evidence": []
2026-06-09T03:00:38.4759154Z         },
2026-06-09T03:00:38.4759241Z         "impl": {
2026-06-09T03:00:38.4759325Z           "complete": true,
2026-06-09T03:00:38.4759410Z           "evidence": [
2026-06-09T03:00:38.4759491Z             {
2026-06-09T03:00:38.4759602Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.4759682Z               "line": 143
2026-06-09T03:00:38.4759762Z             },
2026-06-09T03:00:38.4759844Z             {
2026-06-09T03:00:38.4759959Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4760039Z               "line": 148
2026-06-09T03:00:38.4760120Z             }
2026-06-09T03:00:38.4760202Z           ]
2026-06-09T03:00:38.4760283Z         },
2026-06-09T03:00:38.4760564Z         "int": {
2026-06-09T03:00:38.4760650Z           "complete": false,
2026-06-09T03:00:38.4760740Z           "evidence": []
2026-06-09T03:00:38.4760818Z         },
2026-06-09T03:00:38.4760898Z         "unit": {
2026-06-09T03:00:38.4760988Z           "complete": true,
2026-06-09T03:00:38.4761069Z           "evidence": [
2026-06-09T03:00:38.4761152Z             {
2026-06-09T03:00:38.4761255Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.4761336Z               "line": 264
2026-06-09T03:00:38.4761418Z             },
2026-06-09T03:00:38.4761499Z             {
2026-06-09T03:00:38.4761612Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4761694Z               "line": 544
2026-06-09T03:00:38.4761776Z             },
2026-06-09T03:00:38.4761852Z             {
2026-06-09T03:00:38.4761960Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.4762046Z               "line": 557
2026-06-09T03:00:38.4762132Z             }
2026-06-09T03:00:38.4762223Z           ]
2026-06-09T03:00:38.4762303Z         }
2026-06-09T03:00:38.4762384Z       }
2026-06-09T03:00:38.4762462Z     },
2026-06-09T03:00:38.4762543Z     {
2026-06-09T03:00:38.4762650Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-09T03:00:38.4762776Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-09T03:00:38.4762867Z       "requiredStages": [
2026-06-09T03:00:38.4762947Z         "impl",
2026-06-09T03:00:38.4763028Z         "unit"
2026-06-09T03:00:38.4763105Z       ],
2026-06-09T03:00:38.4763190Z       "stages": {
2026-06-09T03:00:38.4763266Z         "doc": {
2026-06-09T03:00:38.4763357Z           "complete": false,
2026-06-09T03:00:38.4763444Z           "evidence": []
2026-06-09T03:00:38.4763519Z         },
2026-06-09T03:00:38.4763605Z         "impl": {
2026-06-09T03:00:38.4763692Z           "complete": true,
2026-06-09T03:00:38.4763773Z           "evidence": [
2026-06-09T03:00:38.4763852Z             {
2026-06-09T03:00:38.4763968Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4764059Z               "line": 114
2026-06-09T03:00:38.4764139Z             },
2026-06-09T03:00:38.4764215Z             {
2026-06-09T03:00:38.4764331Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.4764417Z               "line": 481
2026-06-09T03:00:38.4764491Z             }
2026-06-09T03:00:38.4764577Z           ]
2026-06-09T03:00:38.4764658Z         },
2026-06-09T03:00:38.4764739Z         "int": {
2026-06-09T03:00:38.4764827Z           "complete": false,
2026-06-09T03:00:38.4764908Z           "evidence": []
2026-06-09T03:00:38.4764989Z         },
2026-06-09T03:00:38.4765070Z         "unit": {
2026-06-09T03:00:38.4765156Z           "complete": true,
2026-06-09T03:00:38.4765242Z           "evidence": [
2026-06-09T03:00:38.4765319Z             {
2026-06-09T03:00:38.4765434Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.4765518Z               "line": 515
2026-06-09T03:00:38.4765610Z             }
2026-06-09T03:00:38.4765691Z           ]
2026-06-09T03:00:38.4765772Z         }
2026-06-09T03:00:38.4765847Z       }
2026-06-09T03:00:38.4765925Z     },
2026-06-09T03:00:38.4766006Z     {
2026-06-09T03:00:38.4766119Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-09T03:00:38.4766273Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-09T03:00:38.4766363Z       "requiredStages": [
2026-06-09T03:00:38.4766444Z         "impl",
2026-06-09T03:00:38.4766525Z         "unit"
2026-06-09T03:00:38.4766602Z       ],
2026-06-09T03:00:38.4766687Z       "stages": {
2026-06-09T03:00:38.4766763Z         "doc": {
2026-06-09T03:00:38.4766854Z           "complete": false,
2026-06-09T03:00:38.4766936Z           "evidence": []
2026-06-09T03:00:38.4767106Z         },
2026-06-09T03:00:38.4767186Z         "impl": {
2026-06-09T03:00:38.4767272Z           "complete": true,
2026-06-09T03:00:38.4767356Z           "evidence": [
2026-06-09T03:00:38.4767432Z             {
2026-06-09T03:00:38.4767761Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4767847Z               "line": 459
2026-06-09T03:00:38.4767928Z             },
2026-06-09T03:00:38.4768009Z             {
2026-06-09T03:00:38.4768118Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4768206Z               "line": 28
2026-06-09T03:00:38.4768281Z             }
2026-06-09T03:00:38.4768361Z           ]
2026-06-09T03:00:38.4768442Z         },
2026-06-09T03:00:38.4768525Z         "int": {
2026-06-09T03:00:38.4768614Z           "complete": false,
2026-06-09T03:00:38.4768700Z           "evidence": []
2026-06-09T03:00:38.4768782Z         },
2026-06-09T03:00:38.4768864Z         "unit": {
2026-06-09T03:00:38.4768948Z           "complete": true,
2026-06-09T03:00:38.4769034Z           "evidence": [
2026-06-09T03:00:38.4769111Z             {
2026-06-09T03:00:38.4769220Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4769311Z               "line": 229
2026-06-09T03:00:38.4769411Z             }
2026-06-09T03:00:38.4769489Z           ]
2026-06-09T03:00:38.4769568Z         }
2026-06-09T03:00:38.4769649Z       }
2026-06-09T03:00:38.4769729Z     },
2026-06-09T03:00:38.4769806Z     {
2026-06-09T03:00:38.4769908Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-09T03:00:38.4770031Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-09T03:00:38.4770123Z       "requiredStages": [],
2026-06-09T03:00:38.4770205Z       "stages": {
2026-06-09T03:00:38.4770285Z         "doc": {
2026-06-09T03:00:38.4770370Z           "complete": false,
2026-06-09T03:00:38.4770457Z           "evidence": []
2026-06-09T03:00:38.4770533Z         },
2026-06-09T03:00:38.4770618Z         "impl": {
2026-06-09T03:00:38.4770700Z           "complete": false,
2026-06-09T03:00:38.4770786Z           "evidence": []
2026-06-09T03:00:38.4770862Z         },
2026-06-09T03:00:38.4770947Z         "int": {
2026-06-09T03:00:38.4771034Z           "complete": false,
2026-06-09T03:00:38.4771139Z           "evidence": []
2026-06-09T03:00:38.4771220Z         },
2026-06-09T03:00:38.4771300Z         "unit": {
2026-06-09T03:00:38.4771387Z           "complete": false,
2026-06-09T03:00:38.4771468Z           "evidence": []
2026-06-09T03:00:38.4771553Z         }
2026-06-09T03:00:38.4771634Z       }
2026-06-09T03:00:38.4771712Z     },
2026-06-09T03:00:38.4771792Z     {
2026-06-09T03:00:38.4771896Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-09T03:00:38.4772036Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-09T03:00:38.4772121Z       "requiredStages": [
2026-06-09T03:00:38.4772210Z         "impl",
2026-06-09T03:00:38.4772293Z         "unit"
2026-06-09T03:00:38.4772370Z       ],
2026-06-09T03:00:38.4772459Z       "stages": {
2026-06-09T03:00:38.4772539Z         "doc": {
2026-06-09T03:00:38.4772625Z           "complete": false,
2026-06-09T03:00:38.4772712Z           "evidence": []
2026-06-09T03:00:38.4772792Z         },
2026-06-09T03:00:38.4772873Z         "impl": {
2026-06-09T03:00:38.4772978Z           "complete": true,
2026-06-09T03:00:38.4773069Z           "evidence": [
2026-06-09T03:00:38.4773145Z             {
2026-06-09T03:00:38.4773259Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T03:00:38.4773345Z               "line": 19
2026-06-09T03:00:38.4773427Z             },
2026-06-09T03:00:38.4773507Z             {
2026-06-09T03:00:38.4773623Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.4773708Z               "line": 347
2026-06-09T03:00:38.4773789Z             },
2026-06-09T03:00:38.4773864Z             {
2026-06-09T03:00:38.4773980Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.4774065Z               "line": 383
2026-06-09T03:00:38.4774146Z             },
2026-06-09T03:00:38.4774223Z             {
2026-06-09T03:00:38.4774338Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T03:00:38.4774427Z               "line": 15
2026-06-09T03:00:38.4774504Z             },
2026-06-09T03:00:38.4774718Z             {
2026-06-09T03:00:38.4774838Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T03:00:38.4774920Z               "line": 48
2026-06-09T03:00:38.4775000Z             },
2026-06-09T03:00:38.4775080Z             {
2026-06-09T03:00:38.4775184Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T03:00:38.4775270Z               "line": 119
2026-06-09T03:00:38.4775336Z             },
2026-06-09T03:00:38.4775415Z             {
2026-06-09T03:00:38.4775516Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4775603Z               "line": 2525
2026-06-09T03:00:38.4775684Z             }
2026-06-09T03:00:38.4775759Z           ]
2026-06-09T03:00:38.4775845Z         },
2026-06-09T03:00:38.4775922Z         "int": {
2026-06-09T03:00:38.4776017Z           "complete": false,
2026-06-09T03:00:38.4776107Z           "evidence": []
2026-06-09T03:00:38.4776189Z         },
2026-06-09T03:00:38.4776293Z         "unit": {
2026-06-09T03:00:38.4776393Z           "complete": true,
2026-06-09T03:00:38.4776485Z           "evidence": [
2026-06-09T03:00:38.4776556Z             {
2026-06-09T03:00:38.4776665Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.4776761Z               "line": 496
2026-06-09T03:00:38.4776847Z             },
2026-06-09T03:00:38.4776928Z             {
2026-06-09T03:00:38.4777119Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T03:00:38.4777205Z               "line": 165
2026-06-09T03:00:38.4777284Z             },
2026-06-09T03:00:38.4777366Z             {
2026-06-09T03:00:38.4777472Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T03:00:38.4777557Z               "line": 175
2026-06-09T03:00:38.4777632Z             }
2026-06-09T03:00:38.4777713Z           ]
2026-06-09T03:00:38.4777794Z         }
2026-06-09T03:00:38.4777875Z       }
2026-06-09T03:00:38.4777954Z     },
2026-06-09T03:00:38.4778035Z     {
2026-06-09T03:00:38.4778141Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-09T03:00:38.4779012Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-09T03:00:38.4779104Z       "requiredStages": [
2026-06-09T03:00:38.4779194Z         "impl",
2026-06-09T03:00:38.4779284Z         "unit"
2026-06-09T03:00:38.4779362Z       ],
2026-06-09T03:00:38.4779447Z       "stages": {
2026-06-09T03:00:38.4779527Z         "doc": {
2026-06-09T03:00:38.4779618Z           "complete": false,
2026-06-09T03:00:38.4779705Z           "evidence": []
2026-06-09T03:00:38.4779790Z         },
2026-06-09T03:00:38.4779876Z         "impl": {
2026-06-09T03:00:38.4779961Z           "complete": true,
2026-06-09T03:00:38.4780049Z           "evidence": [
2026-06-09T03:00:38.4780133Z             {
2026-06-09T03:00:38.4780237Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4780337Z               "line": 2283
2026-06-09T03:00:38.4780422Z             },
2026-06-09T03:00:38.4780506Z             {
2026-06-09T03:00:38.4780616Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.4780703Z               "line": 103
2026-06-09T03:00:38.4780784Z             },
2026-06-09T03:00:38.4780864Z             {
2026-06-09T03:00:38.4780969Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.4781055Z               "line": 135
2026-06-09T03:00:38.4781136Z             }
2026-06-09T03:00:38.4781217Z           ]
2026-06-09T03:00:38.4781298Z         },
2026-06-09T03:00:38.4781384Z         "int": {
2026-06-09T03:00:38.4781474Z           "complete": false,
2026-06-09T03:00:38.4781555Z           "evidence": []
2026-06-09T03:00:38.4781638Z         },
2026-06-09T03:00:38.4781722Z         "unit": {
2026-06-09T03:00:38.4781808Z           "complete": true,
2026-06-09T03:00:38.4781899Z           "evidence": [
2026-06-09T03:00:38.4781976Z             {
2026-06-09T03:00:38.4782267Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.4782357Z               "line": 258
2026-06-09T03:00:38.4782437Z             },
2026-06-09T03:00:38.4782518Z             {
2026-06-09T03:00:38.4782620Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.4782709Z               "line": 283
2026-06-09T03:00:38.4782790Z             },
2026-06-09T03:00:38.4782868Z             {
2026-06-09T03:00:38.4782972Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.4783061Z               "line": 296
2026-06-09T03:00:38.4783142Z             },
2026-06-09T03:00:38.4783223Z             {
2026-06-09T03:00:38.4783324Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.4783409Z               "line": 308
2026-06-09T03:00:38.4783495Z             }
2026-06-09T03:00:38.4783577Z           ]
2026-06-09T03:00:38.4783658Z         }
2026-06-09T03:00:38.4783743Z       }
2026-06-09T03:00:38.4783819Z     },
2026-06-09T03:00:38.4783915Z     {
2026-06-09T03:00:38.4784020Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-09T03:00:38.4784173Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-09T03:00:38.4784263Z       "requiredStages": [
2026-06-09T03:00:38.4784349Z         "impl",
2026-06-09T03:00:38.4784429Z         "unit"
2026-06-09T03:00:38.4784507Z       ],
2026-06-09T03:00:38.4784597Z       "stages": {
2026-06-09T03:00:38.4784678Z         "doc": {
2026-06-09T03:00:38.4784768Z           "complete": false,
2026-06-09T03:00:38.4784855Z           "evidence": []
2026-06-09T03:00:38.4784944Z         },
2026-06-09T03:00:38.4785026Z         "impl": {
2026-06-09T03:00:38.4785112Z           "complete": true,
2026-06-09T03:00:38.4785198Z           "evidence": [
2026-06-09T03:00:38.4785278Z             {
2026-06-09T03:00:38.4785388Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4785471Z               "line": 35
2026-06-09T03:00:38.4785551Z             }
2026-06-09T03:00:38.4785649Z           ]
2026-06-09T03:00:38.4785730Z         },
2026-06-09T03:00:38.4785811Z         "int": {
2026-06-09T03:00:38.4785901Z           "complete": false,
2026-06-09T03:00:38.4785985Z           "evidence": []
2026-06-09T03:00:38.4786066Z         },
2026-06-09T03:00:38.4786153Z         "unit": {
2026-06-09T03:00:38.4786239Z           "complete": true,
2026-06-09T03:00:38.4786323Z           "evidence": [
2026-06-09T03:00:38.4786405Z             {
2026-06-09T03:00:38.4786515Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T03:00:38.4786601Z               "line": 220
2026-06-09T03:00:38.4786682Z             }
2026-06-09T03:00:38.4786763Z           ]
2026-06-09T03:00:38.4786844Z         }
2026-06-09T03:00:38.4786925Z       }
2026-06-09T03:00:38.4787092Z     },
2026-06-09T03:00:38.4787173Z     {
2026-06-09T03:00:38.4787282Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-09T03:00:38.4787530Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-09T03:00:38.4787635Z       "requiredStages": [
2026-06-09T03:00:38.4787717Z         "impl",
2026-06-09T03:00:38.4787798Z         "unit"
2026-06-09T03:00:38.4787879Z       ],
2026-06-09T03:00:38.4787965Z       "stages": {
2026-06-09T03:00:38.4788047Z         "doc": {
2026-06-09T03:00:38.4788131Z           "complete": false,
2026-06-09T03:00:38.4788221Z           "evidence": []
2026-06-09T03:00:38.4788301Z         },
2026-06-09T03:00:38.4788383Z         "impl": {
2026-06-09T03:00:38.4788476Z           "complete": true,
2026-06-09T03:00:38.4788561Z           "evidence": [
2026-06-09T03:00:38.4788643Z             {
2026-06-09T03:00:38.4788767Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.4788852Z               "line": 398
2026-06-09T03:00:38.4788933Z             },
2026-06-09T03:00:38.4789016Z             {
2026-06-09T03:00:38.4789139Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.4789224Z               "line": 396
2026-06-09T03:00:38.4789505Z             },
2026-06-09T03:00:38.4789587Z             {
2026-06-09T03:00:38.4789707Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.4789792Z               "line": 156
2026-06-09T03:00:38.4789868Z             }
2026-06-09T03:00:38.4789950Z           ]
2026-06-09T03:00:38.4790031Z         },
2026-06-09T03:00:38.4790112Z         "int": {
2026-06-09T03:00:38.4790198Z           "complete": false,
2026-06-09T03:00:38.4790284Z           "evidence": []
2026-06-09T03:00:38.4790364Z         },
2026-06-09T03:00:38.4790441Z         "unit": {
2026-06-09T03:00:38.4790531Z           "complete": true,
2026-06-09T03:00:38.4790614Z           "evidence": [
2026-06-09T03:00:38.4790698Z             {
2026-06-09T03:00:38.4790807Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.4790892Z               "line": 797
2026-06-09T03:00:38.4790973Z             },
2026-06-09T03:00:38.4791048Z             {
2026-06-09T03:00:38.4791166Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.4791253Z               "line": 811
2026-06-09T03:00:38.4791335Z             },
2026-06-09T03:00:38.4791414Z             {
2026-06-09T03:00:38.4791525Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.4791615Z               "line": 830
2026-06-09T03:00:38.4791696Z             },
2026-06-09T03:00:38.4791772Z             {
2026-06-09T03:00:38.4791883Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.4791968Z               "line": 847
2026-06-09T03:00:38.4792053Z             },
2026-06-09T03:00:38.4792129Z             {
2026-06-09T03:00:38.4792254Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T03:00:38.4792335Z               "line": 439
2026-06-09T03:00:38.4792416Z             }
2026-06-09T03:00:38.4792493Z           ]
2026-06-09T03:00:38.4792574Z         }
2026-06-09T03:00:38.4792659Z       }
2026-06-09T03:00:38.4792740Z     },
2026-06-09T03:00:38.4792817Z     {
2026-06-09T03:00:38.4792940Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-09T03:00:38.4793683Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-09T03:00:38.4793779Z       "requiredStages": [
2026-06-09T03:00:38.4793861Z         "doc",
2026-06-09T03:00:38.4793946Z         "impl",
2026-06-09T03:00:38.4794026Z         "unit"
2026-06-09T03:00:38.4794108Z       ],
2026-06-09T03:00:38.4794189Z       "stages": {
2026-06-09T03:00:38.4794269Z         "doc": {
2026-06-09T03:00:38.4794355Z           "complete": true,
2026-06-09T03:00:38.4794443Z           "evidence": [
2026-06-09T03:00:38.4794528Z             {
2026-06-09T03:00:38.4794632Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T03:00:38.4794714Z               "line": 312
2026-06-09T03:00:38.4794790Z             }
2026-06-09T03:00:38.4794895Z           ]
2026-06-09T03:00:38.4794975Z         },
2026-06-09T03:00:38.4795057Z         "impl": {
2026-06-09T03:00:38.4795147Z           "complete": true,
2026-06-09T03:00:38.4795233Z           "evidence": [
2026-06-09T03:00:38.4795309Z             {
2026-06-09T03:00:38.4795425Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T03:00:38.4795509Z               "line": 85
2026-06-09T03:00:38.4795586Z             },
2026-06-09T03:00:38.4795672Z             {
2026-06-09T03:00:38.4795782Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T03:00:38.4795867Z               "line": 99
2026-06-09T03:00:38.4795948Z             },
2026-06-09T03:00:38.4796026Z             {
2026-06-09T03:00:38.4796148Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.4796233Z               "line": 55
2026-06-09T03:00:38.4796309Z             },
2026-06-09T03:00:38.4796390Z             {
2026-06-09T03:00:38.4796498Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.4796718Z               "line": 31
2026-06-09T03:00:38.4796799Z             },
2026-06-09T03:00:38.4796879Z             {
2026-06-09T03:00:38.4797066Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.4797142Z               "line": 187
2026-06-09T03:00:38.4797227Z             },
2026-06-09T03:00:38.4797295Z             {
2026-06-09T03:00:38.4797414Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.4797499Z               "line": 95
2026-06-09T03:00:38.4797600Z             },
2026-06-09T03:00:38.4797681Z             {
2026-06-09T03:00:38.4797795Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.4797876Z               "line": 29
2026-06-09T03:00:38.4797958Z             },
2026-06-09T03:00:38.4798038Z             {
2026-06-09T03:00:38.4798148Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.4798239Z               "line": 104
2026-06-09T03:00:38.4798316Z             },
2026-06-09T03:00:38.4798414Z             {
2026-06-09T03:00:38.4798539Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4798626Z               "line": 192
2026-06-09T03:00:38.4798705Z             },
2026-06-09T03:00:38.4798781Z             {
2026-06-09T03:00:38.4798896Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T03:00:38.4798981Z               "line": 28
2026-06-09T03:00:38.4799060Z             },
2026-06-09T03:00:38.4799136Z             {
2026-06-09T03:00:38.4799246Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T03:00:38.4799327Z               "line": 74
2026-06-09T03:00:38.4799408Z             },
2026-06-09T03:00:38.4799489Z             {
2026-06-09T03:00:38.4801428Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T03:00:38.4801538Z               "line": 32
2026-06-09T03:00:38.4801622Z             },
2026-06-09T03:00:38.4801698Z             {
2026-06-09T03:00:38.4801833Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4801932Z               "line": 40
2026-06-09T03:00:38.4802017Z             },
2026-06-09T03:00:38.4802094Z             {
2026-06-09T03:00:38.4802214Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4802303Z               "line": 184
2026-06-09T03:00:38.4802385Z             },
2026-06-09T03:00:38.4802467Z             {
2026-06-09T03:00:38.4802581Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-09T03:00:38.4802666Z               "line": 70
2026-06-09T03:00:38.4802748Z             },
2026-06-09T03:00:38.4802824Z             {
2026-06-09T03:00:38.4802937Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T03:00:38.4803019Z               "line": 223
2026-06-09T03:00:38.4803101Z             },
2026-06-09T03:00:38.4803181Z             {
2026-06-09T03:00:38.4803295Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T03:00:38.4803382Z               "line": 37
2026-06-09T03:00:38.4803463Z             },
2026-06-09T03:00:38.4803558Z             {
2026-06-09T03:00:38.4803683Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.4803769Z               "line": 38
2026-06-09T03:00:38.4803848Z             },
2026-06-09T03:00:38.4803925Z             {
2026-06-09T03:00:38.4804036Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T03:00:38.4804121Z               "line": 36
2026-06-09T03:00:38.4804201Z             },
2026-06-09T03:00:38.4804281Z             {
2026-06-09T03:00:38.4804392Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T03:00:38.4804477Z               "line": 40
2026-06-09T03:00:38.4804553Z             }
2026-06-09T03:00:38.4804635Z           ]
2026-06-09T03:00:38.4804716Z         },
2026-06-09T03:00:38.4804797Z         "int": {
2026-06-09T03:00:38.4804887Z           "complete": false,
2026-06-09T03:00:38.4804973Z           "evidence": []
2026-06-09T03:00:38.4805054Z         },
2026-06-09T03:00:38.4805135Z         "unit": {
2026-06-09T03:00:38.4805441Z           "complete": true,
2026-06-09T03:00:38.4805526Z           "evidence": [
2026-06-09T03:00:38.4805607Z             {
2026-06-09T03:00:38.4805736Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.4805822Z               "line": 212
2026-06-09T03:00:38.4805903Z             },
2026-06-09T03:00:38.4805985Z             {
2026-06-09T03:00:38.4806108Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-09T03:00:38.4806193Z               "line": 136
2026-06-09T03:00:38.4806276Z             },
2026-06-09T03:00:38.4806356Z             {
2026-06-09T03:00:38.4806480Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T03:00:38.4806562Z               "line": 683
2026-06-09T03:00:38.4806643Z             },
2026-06-09T03:00:38.4806722Z             {
2026-06-09T03:00:38.4806836Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T03:00:38.4806927Z               "line": 224
2026-06-09T03:00:38.4807091Z             },
2026-06-09T03:00:38.4807187Z             {
2026-06-09T03:00:38.4807326Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-09T03:00:38.4807411Z               "line": 157
2026-06-09T03:00:38.4807492Z             },
2026-06-09T03:00:38.4807569Z             {
2026-06-09T03:00:38.4807683Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T03:00:38.4807764Z               "line": 112
2026-06-09T03:00:38.4807845Z             },
2026-06-09T03:00:38.4807912Z             {
2026-06-09T03:00:38.4808021Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T03:00:38.4808102Z               "line": 157
2026-06-09T03:00:38.4808175Z             },
2026-06-09T03:00:38.4808260Z             {
2026-06-09T03:00:38.4808369Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.4808451Z               "line": 215
2026-06-09T03:00:38.4808537Z             },
2026-06-09T03:00:38.4808627Z             {
2026-06-09T03:00:38.4808755Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T03:00:38.4808847Z               "line": 140
2026-06-09T03:00:38.4808927Z             },
2026-06-09T03:00:38.4809009Z             {
2026-06-09T03:00:38.4809114Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T03:00:38.4809200Z               "line": 162
2026-06-09T03:00:38.4809279Z             }
2026-06-09T03:00:38.4809364Z           ]
2026-06-09T03:00:38.4809446Z         }
2026-06-09T03:00:38.4809526Z       }
2026-06-09T03:00:38.4809606Z     },
2026-06-09T03:00:38.4809686Z     {
2026-06-09T03:00:38.4809802Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-09T03:00:38.4809954Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-09T03:00:38.4810044Z       "requiredStages": [
2026-06-09T03:00:38.4810131Z         "impl",
2026-06-09T03:00:38.4810211Z         "unit"
2026-06-09T03:00:38.4810292Z       ],
2026-06-09T03:00:38.4810374Z       "stages": {
2026-06-09T03:00:38.4810460Z         "doc": {
2026-06-09T03:00:38.4810555Z           "complete": false,
2026-06-09T03:00:38.4810649Z           "evidence": []
2026-06-09T03:00:38.4810732Z         },
2026-06-09T03:00:38.4810813Z         "impl": {
2026-06-09T03:00:38.4810903Z           "complete": true,
2026-06-09T03:00:38.4810988Z           "evidence": [
2026-06-09T03:00:38.4811071Z             {
2026-06-09T03:00:38.4811179Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.4811265Z               "line": 95
2026-06-09T03:00:38.4811346Z             },
2026-06-09T03:00:38.4811423Z             {
2026-06-09T03:00:38.4811531Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.4811618Z               "line": 102
2026-06-09T03:00:38.4811701Z             }
2026-06-09T03:00:38.4811781Z           ]
2026-06-09T03:00:38.4811860Z         },
2026-06-09T03:00:38.4811941Z         "int": {
2026-06-09T03:00:38.4812032Z           "complete": false,
2026-06-09T03:00:38.4812117Z           "evidence": []
2026-06-09T03:00:38.4812196Z         },
2026-06-09T03:00:38.4812378Z         "unit": {
2026-06-09T03:00:38.4812553Z           "complete": true,
2026-06-09T03:00:38.4812640Z           "evidence": [
2026-06-09T03:00:38.4812722Z             {
2026-06-09T03:00:38.4812835Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.4812926Z               "line": 250
2026-06-09T03:00:38.4813008Z             },
2026-06-09T03:00:38.4813088Z             {
2026-06-09T03:00:38.4813197Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T03:00:38.4813284Z               "line": 198
2026-06-09T03:00:38.4813360Z             },
2026-06-09T03:00:38.4813446Z             {
2026-06-09T03:00:38.4813555Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.4813637Z               "line": 442
2026-06-09T03:00:38.4813718Z             },
2026-06-09T03:00:38.4813799Z             {
2026-06-09T03:00:38.4813904Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.4813986Z               "line": 475
2026-06-09T03:00:38.4814065Z             }
2026-06-09T03:00:38.4814160Z           ]
2026-06-09T03:00:38.4814243Z         }
2026-06-09T03:00:38.4814324Z       }
2026-06-09T03:00:38.4814403Z     },
2026-06-09T03:00:38.4814485Z     {
2026-06-09T03:00:38.4814586Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-09T03:00:38.4814761Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-09T03:00:38.4814850Z       "requiredStages": [
2026-06-09T03:00:38.4814933Z         "impl",
2026-06-09T03:00:38.4815014Z         "unit"
2026-06-09T03:00:38.4815094Z       ],
2026-06-09T03:00:38.4815175Z       "stages": {
2026-06-09T03:00:38.4815258Z         "doc": {
2026-06-09T03:00:38.4815348Z           "complete": false,
2026-06-09T03:00:38.4815437Z           "evidence": []
2026-06-09T03:00:38.4815514Z         },
2026-06-09T03:00:38.4815600Z         "impl": {
2026-06-09T03:00:38.4815686Z           "complete": true,
2026-06-09T03:00:38.4815771Z           "evidence": [
2026-06-09T03:00:38.4815853Z             {
2026-06-09T03:00:38.4815967Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4816062Z               "line": 252
2026-06-09T03:00:38.4816139Z             },
2026-06-09T03:00:38.4816221Z             {
2026-06-09T03:00:38.4816324Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4816410Z               "line": 297
2026-06-09T03:00:38.4816492Z             },
2026-06-09T03:00:38.4816573Z             {
2026-06-09T03:00:38.4816677Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4816763Z               "line": 309
2026-06-09T03:00:38.4816846Z             }
2026-06-09T03:00:38.4816925Z           ]
2026-06-09T03:00:38.4817088Z         },
2026-06-09T03:00:38.4817170Z         "int": {
2026-06-09T03:00:38.4817259Z           "complete": false,
2026-06-09T03:00:38.4817349Z           "evidence": []
2026-06-09T03:00:38.4817425Z         },
2026-06-09T03:00:38.4817511Z         "unit": {
2026-06-09T03:00:38.4817595Z           "complete": true,
2026-06-09T03:00:38.4817689Z           "evidence": [
2026-06-09T03:00:38.4817775Z             {
2026-06-09T03:00:38.4817886Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4817966Z               "line": 445
2026-06-09T03:00:38.4818047Z             },
2026-06-09T03:00:38.4818129Z             {
2026-06-09T03:00:38.4818234Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.4818319Z               "line": 489
2026-06-09T03:00:38.4818400Z             }
2026-06-09T03:00:38.4818481Z           ]
2026-06-09T03:00:38.4818562Z         }
2026-06-09T03:00:38.4818638Z       }
2026-06-09T03:00:38.4818720Z     },
2026-06-09T03:00:38.4818801Z     {
2026-06-09T03:00:38.4818891Z       "id": "REQ-INFRA-1",
2026-06-09T03:00:38.4819054Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-09T03:00:38.4819144Z       "requiredStages": [],
2026-06-09T03:00:38.4819225Z       "stages": {
2026-06-09T03:00:38.4819306Z         "doc": {
2026-06-09T03:00:38.4819398Z           "complete": false,
2026-06-09T03:00:38.4819689Z           "evidence": []
2026-06-09T03:00:38.4819769Z         },
2026-06-09T03:00:38.4819854Z         "impl": {
2026-06-09T03:00:38.4819944Z           "complete": false,
2026-06-09T03:00:38.4820030Z           "evidence": []
2026-06-09T03:00:38.4820110Z         },
2026-06-09T03:00:38.4820195Z         "int": {
2026-06-09T03:00:38.4820280Z           "complete": false,
2026-06-09T03:00:38.4820367Z           "evidence": []
2026-06-09T03:00:38.4820448Z         },
2026-06-09T03:00:38.4820528Z         "unit": {
2026-06-09T03:00:38.4820619Z           "complete": false,
2026-06-09T03:00:38.4820705Z           "evidence": []
2026-06-09T03:00:38.4820786Z         }
2026-06-09T03:00:38.4820866Z       }
2026-06-09T03:00:38.4820948Z     },
2026-06-09T03:00:38.4821025Z     {
2026-06-09T03:00:38.4821115Z       "id": "REQ-INST-1",
2026-06-09T03:00:38.4821267Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-09T03:00:38.4821359Z       "requiredStages": [],
2026-06-09T03:00:38.4821458Z       "stages": {
2026-06-09T03:00:38.4821539Z         "doc": {
2026-06-09T03:00:38.4821626Z           "complete": false,
2026-06-09T03:00:38.4821711Z           "evidence": []
2026-06-09T03:00:38.4821792Z         },
2026-06-09T03:00:38.4821878Z         "impl": {
2026-06-09T03:00:38.4821964Z           "complete": false,
2026-06-09T03:00:38.4822049Z           "evidence": []
2026-06-09T03:00:38.4822126Z         },
2026-06-09T03:00:38.4822207Z         "int": {
2026-06-09T03:00:38.4822294Z           "complete": false,
2026-06-09T03:00:38.4822378Z           "evidence": []
2026-06-09T03:00:38.4822458Z         },
2026-06-09T03:00:38.4822543Z         "unit": {
2026-06-09T03:00:38.4822630Z           "complete": false,
2026-06-09T03:00:38.4822714Z           "evidence": []
2026-06-09T03:00:38.4822794Z         }
2026-06-09T03:00:38.4822875Z       }
2026-06-09T03:00:38.4822958Z     },
2026-06-09T03:00:38.4823034Z     {
2026-06-09T03:00:38.4823123Z       "id": "REQ-INST-10",
2026-06-09T03:00:38.4823329Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-09T03:00:38.4823428Z       "requiredStages": [
2026-06-09T03:00:38.4823510Z         "impl",
2026-06-09T03:00:38.4823591Z         "unit"
2026-06-09T03:00:38.4823672Z       ],
2026-06-09T03:00:38.4823757Z       "stages": {
2026-06-09T03:00:38.4823839Z         "doc": {
2026-06-09T03:00:38.4823925Z           "complete": false,
2026-06-09T03:00:38.4824016Z           "evidence": []
2026-06-09T03:00:38.4824091Z         },
2026-06-09T03:00:38.4824174Z         "impl": {
2026-06-09T03:00:38.4824264Z           "complete": true,
2026-06-09T03:00:38.4824349Z           "evidence": [
2026-06-09T03:00:38.4824430Z             {
2026-06-09T03:00:38.4824550Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4824635Z               "line": 600
2026-06-09T03:00:38.4824716Z             },
2026-06-09T03:00:38.4824798Z             {
2026-06-09T03:00:38.4824922Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4825011Z               "line": 677
2026-06-09T03:00:38.4825093Z             },
2026-06-09T03:00:38.4825170Z             {
2026-06-09T03:00:38.4825278Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T03:00:38.4825363Z               "line": 13
2026-06-09T03:00:38.4825440Z             },
2026-06-09T03:00:38.4825522Z             {
2026-06-09T03:00:38.4825626Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T03:00:38.4825711Z               "line": 67
2026-06-09T03:00:38.4825793Z             },
2026-06-09T03:00:38.4825869Z             {
2026-06-09T03:00:38.4825978Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.4826059Z               "line": 18
2026-06-09T03:00:38.4826146Z             },
2026-06-09T03:00:38.4826223Z             {
2026-06-09T03:00:38.4826326Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.4826413Z               "line": 444
2026-06-09T03:00:38.4826494Z             }
2026-06-09T03:00:38.4826718Z           ]
2026-06-09T03:00:38.4826805Z         },
2026-06-09T03:00:38.4826884Z         "int": {
2026-06-09T03:00:38.4827062Z           "complete": false,
2026-06-09T03:00:38.4827147Z           "evidence": []
2026-06-09T03:00:38.4827228Z         },
2026-06-09T03:00:38.4827314Z         "unit": {
2026-06-09T03:00:38.4827401Z           "complete": true,
2026-06-09T03:00:38.4827486Z           "evidence": [
2026-06-09T03:00:38.4827566Z             {
2026-06-09T03:00:38.4827682Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4827773Z               "line": 883
2026-06-09T03:00:38.4827852Z             },
2026-06-09T03:00:38.4827933Z             {
2026-06-09T03:00:38.4828047Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4828132Z               "line": 1212
2026-06-09T03:00:38.4828211Z             },
2026-06-09T03:00:38.4828292Z             {
2026-06-09T03:00:38.4828403Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4828502Z               "line": 1223
2026-06-09T03:00:38.4828583Z             },
2026-06-09T03:00:38.4828660Z             {
2026-06-09T03:00:38.4828770Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4828855Z               "line": 1239
2026-06-09T03:00:38.4828936Z             },
2026-06-09T03:00:38.4829004Z             {
2026-06-09T03:00:38.4829113Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4829189Z               "line": 1255
2026-06-09T03:00:38.4829271Z             },
2026-06-09T03:00:38.4829348Z             {
2026-06-09T03:00:38.4829452Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4829537Z               "line": 1277
2026-06-09T03:00:38.4829614Z             },
2026-06-09T03:00:38.4829690Z             {
2026-06-09T03:00:38.4829790Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4829876Z               "line": 1582
2026-06-09T03:00:38.4829953Z             },
2026-06-09T03:00:38.4830047Z             {
2026-06-09T03:00:38.4830152Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T03:00:38.4830234Z               "line": 130
2026-06-09T03:00:38.4830316Z             },
2026-06-09T03:00:38.4830390Z             {
2026-06-09T03:00:38.4830494Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T03:00:38.4830590Z               "line": 167
2026-06-09T03:00:38.4830689Z             },
2026-06-09T03:00:38.4830788Z             {
2026-06-09T03:00:38.4830888Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T03:00:38.4830965Z               "line": 175
2026-06-09T03:00:38.4831045Z             },
2026-06-09T03:00:38.4831121Z             {
2026-06-09T03:00:38.4831232Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T03:00:38.4831332Z               "line": 183
2026-06-09T03:00:38.4831412Z             },
2026-06-09T03:00:38.4831494Z             {
2026-06-09T03:00:38.4831599Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.4831689Z               "line": 895
2026-06-09T03:00:38.4831770Z             }
2026-06-09T03:00:38.4831847Z           ]
2026-06-09T03:00:38.4831928Z         }
2026-06-09T03:00:38.4832009Z       }
2026-06-09T03:00:38.4832085Z     },
2026-06-09T03:00:38.4832162Z     {
2026-06-09T03:00:38.4832252Z       "id": "REQ-INST-11",
2026-06-09T03:00:38.4832452Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-09T03:00:38.4832543Z       "requiredStages": [
2026-06-09T03:00:38.4832623Z         "impl",
2026-06-09T03:00:38.4832705Z         "unit"
2026-06-09T03:00:38.4832787Z       ],
2026-06-09T03:00:38.4832872Z       "stages": {
2026-06-09T03:00:38.4832952Z         "doc": {
2026-06-09T03:00:38.4833042Z           "complete": false,
2026-06-09T03:00:38.4833133Z           "evidence": []
2026-06-09T03:00:38.4833218Z         },
2026-06-09T03:00:38.4833303Z         "impl": {
2026-06-09T03:00:38.4833388Z           "complete": true,
2026-06-09T03:00:38.4833570Z           "evidence": [
2026-06-09T03:00:38.4833741Z             {
2026-06-09T03:00:38.4833856Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4833941Z               "line": 466
2026-06-09T03:00:38.4834022Z             },
2026-06-09T03:00:38.4834104Z             {
2026-06-09T03:00:38.4834227Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4834313Z               "line": 265
2026-06-09T03:00:38.4834389Z             },
2026-06-09T03:00:38.4834471Z             {
2026-06-09T03:00:38.4834585Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T03:00:38.4834666Z               "line": 59
2026-06-09T03:00:38.4834748Z             },
2026-06-09T03:00:38.4834829Z             {
2026-06-09T03:00:38.4834933Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4835019Z               "line": 3728
2026-06-09T03:00:38.4835101Z             },
2026-06-09T03:00:38.4835181Z             {
2026-06-09T03:00:38.4835285Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4835383Z               "line": 4827
2026-06-09T03:00:38.4835463Z             }
2026-06-09T03:00:38.4835542Z           ]
2026-06-09T03:00:38.4835619Z         },
2026-06-09T03:00:38.4835702Z         "int": {
2026-06-09T03:00:38.4835792Z           "complete": false,
2026-06-09T03:00:38.4835867Z           "evidence": []
2026-06-09T03:00:38.4835947Z         },
2026-06-09T03:00:38.4836033Z         "unit": {
2026-06-09T03:00:38.4836110Z           "complete": true,
2026-06-09T03:00:38.4836191Z           "evidence": [
2026-06-09T03:00:38.4836271Z             {
2026-06-09T03:00:38.4836387Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4836492Z               "line": 1382
2026-06-09T03:00:38.4836591Z             },
2026-06-09T03:00:38.4836668Z             {
2026-06-09T03:00:38.4836783Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4836867Z               "line": 1415
2026-06-09T03:00:38.4837041Z             },
2026-06-09T03:00:38.4837140Z             {
2026-06-09T03:00:38.4837259Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4837346Z               "line": 495
2026-06-09T03:00:38.4837421Z             },
2026-06-09T03:00:38.4837511Z             {
2026-06-09T03:00:38.4837618Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T03:00:38.4837703Z               "line": 160
2026-06-09T03:00:38.4837788Z             },
2026-06-09T03:00:38.4837865Z             {
2026-06-09T03:00:38.4837975Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T03:00:38.4838060Z               "line": 190
2026-06-09T03:00:38.4838141Z             },
2026-06-09T03:00:38.4838223Z             {
2026-06-09T03:00:38.4838333Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T03:00:38.4838416Z               "line": 225
2026-06-09T03:00:38.4838498Z             },
2026-06-09T03:00:38.4838579Z             {
2026-06-09T03:00:38.4838674Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4838767Z               "line": 5067
2026-06-09T03:00:38.4838847Z             }
2026-06-09T03:00:38.4838930Z           ]
2026-06-09T03:00:38.4839011Z         }
2026-06-09T03:00:38.4839096Z       }
2026-06-09T03:00:38.4839182Z     },
2026-06-09T03:00:38.4839259Z     {
2026-06-09T03:00:38.4839350Z       "id": "REQ-INST-12",
2026-06-09T03:00:38.4839621Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-09T03:00:38.4839711Z       "requiredStages": [
2026-06-09T03:00:38.4839797Z         "impl",
2026-06-09T03:00:38.4839879Z         "unit"
2026-06-09T03:00:38.4839964Z       ],
2026-06-09T03:00:38.4840049Z       "stages": {
2026-06-09T03:00:38.4840131Z         "doc": {
2026-06-09T03:00:38.4840218Z           "complete": false,
2026-06-09T03:00:38.4840307Z           "evidence": []
2026-06-09T03:00:38.4840388Z         },
2026-06-09T03:00:38.4840470Z         "impl": {
2026-06-09T03:00:38.4840556Z           "complete": true,
2026-06-09T03:00:38.4840828Z           "evidence": [
2026-06-09T03:00:38.4840913Z             {
2026-06-09T03:00:38.4841026Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4841112Z               "line": 518
2026-06-09T03:00:38.4841193Z             },
2026-06-09T03:00:38.4841277Z             {
2026-06-09T03:00:38.4841390Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4841472Z               "line": 611
2026-06-09T03:00:38.4841554Z             },
2026-06-09T03:00:38.4841634Z             {
2026-06-09T03:00:38.4841749Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4841830Z               "line": 691
2026-06-09T03:00:38.4841911Z             },
2026-06-09T03:00:38.4841996Z             {
2026-06-09T03:00:38.4842107Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4842192Z               "line": 96
2026-06-09T03:00:38.4842273Z             },
2026-06-09T03:00:38.4842354Z             {
2026-06-09T03:00:38.4842469Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4842555Z               "line": 269
2026-06-09T03:00:38.4842640Z             },
2026-06-09T03:00:38.4842717Z             {
2026-06-09T03:00:38.4842836Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T03:00:38.4842921Z               "line": 135
2026-06-09T03:00:38.4843002Z             }
2026-06-09T03:00:38.4843085Z           ]
2026-06-09T03:00:38.4843165Z         },
2026-06-09T03:00:38.4843246Z         "int": {
2026-06-09T03:00:38.4843332Z           "complete": false,
2026-06-09T03:00:38.4843423Z           "evidence": []
2026-06-09T03:00:38.4843503Z         },
2026-06-09T03:00:38.4843583Z         "unit": {
2026-06-09T03:00:38.4843674Z           "complete": true,
2026-06-09T03:00:38.4843759Z           "evidence": [
2026-06-09T03:00:38.4843843Z             {
2026-06-09T03:00:38.4843952Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4844039Z               "line": 1457
2026-06-09T03:00:38.4844140Z             },
2026-06-09T03:00:38.4844220Z             {
2026-06-09T03:00:38.4844334Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4844416Z               "line": 1480
2026-06-09T03:00:38.4844497Z             },
2026-06-09T03:00:38.4844577Z             {
2026-06-09T03:00:38.4844688Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4844778Z               "line": 1517
2026-06-09T03:00:38.4844854Z             },
2026-06-09T03:00:38.4844935Z             {
2026-06-09T03:00:38.4845045Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.4845131Z               "line": 457
2026-06-09T03:00:38.4845207Z             },
2026-06-09T03:00:38.4845289Z             {
2026-06-09T03:00:38.4845403Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T03:00:38.4845493Z               "line": 172
2026-06-09T03:00:38.4845575Z             },
2026-06-09T03:00:38.4845656Z             {
2026-06-09T03:00:38.4845783Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T03:00:38.4845865Z               "line": 193
2026-06-09T03:00:38.4845948Z             },
2026-06-09T03:00:38.4846028Z             {
2026-06-09T03:00:38.4846141Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T03:00:38.4846233Z               "line": 219
2026-06-09T03:00:38.4846314Z             }
2026-06-09T03:00:38.4846394Z           ]
2026-06-09T03:00:38.4846474Z         }
2026-06-09T03:00:38.4846555Z       }
2026-06-09T03:00:38.4846638Z     },
2026-06-09T03:00:38.4846718Z     {
2026-06-09T03:00:38.4846812Z       "id": "REQ-INST-13",
2026-06-09T03:00:38.4847066Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-09T03:00:38.4847166Z       "requiredStages": [
2026-06-09T03:00:38.4847243Z         "impl",
2026-06-09T03:00:38.4847328Z         "unit"
2026-06-09T03:00:38.4847409Z       ],
2026-06-09T03:00:38.4847490Z       "stages": {
2026-06-09T03:00:38.4847686Z         "doc": {
2026-06-09T03:00:38.4847868Z           "complete": false,
2026-06-09T03:00:38.4847958Z           "evidence": []
2026-06-09T03:00:38.4848034Z         },
2026-06-09T03:00:38.4848120Z         "impl": {
2026-06-09T03:00:38.4848211Z           "complete": true,
2026-06-09T03:00:38.4848296Z           "evidence": [
2026-06-09T03:00:38.4848377Z             {
2026-06-09T03:00:38.4848488Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4848574Z               "line": 100
2026-06-09T03:00:38.4848653Z             },
2026-06-09T03:00:38.4848734Z             {
2026-06-09T03:00:38.4848850Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T03:00:38.4848939Z               "line": 158
2026-06-09T03:00:38.4849020Z             }
2026-06-09T03:00:38.4849100Z           ]
2026-06-09T03:00:38.4849186Z         },
2026-06-09T03:00:38.4849262Z         "int": {
2026-06-09T03:00:38.4849351Z           "complete": false,
2026-06-09T03:00:38.4849437Z           "evidence": []
2026-06-09T03:00:38.4849537Z         },
2026-06-09T03:00:38.4849618Z         "unit": {
2026-06-09T03:00:38.4849703Z           "complete": true,
2026-06-09T03:00:38.4849790Z           "evidence": [
2026-06-09T03:00:38.4849871Z             {
2026-06-09T03:00:38.4849984Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T03:00:38.4850066Z               "line": 248
2026-06-09T03:00:38.4850144Z             },
2026-06-09T03:00:38.4850223Z             {
2026-06-09T03:00:38.4850333Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T03:00:38.4850420Z               "line": 266
2026-06-09T03:00:38.4850501Z             }
2026-06-09T03:00:38.4850582Z           ]
2026-06-09T03:00:38.4850662Z         }
2026-06-09T03:00:38.4850739Z       }
2026-06-09T03:00:38.4850820Z     },
2026-06-09T03:00:38.4850896Z     {
2026-06-09T03:00:38.4850987Z       "id": "REQ-INST-14",
2026-06-09T03:00:38.4851350Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-09T03:00:38.4851446Z       "requiredStages": [
2026-06-09T03:00:38.4851524Z         "doc",
2026-06-09T03:00:38.4851610Z         "impl",
2026-06-09T03:00:38.4851686Z         "unit"
2026-06-09T03:00:38.4851767Z       ],
2026-06-09T03:00:38.4851851Z       "stages": {
2026-06-09T03:00:38.4851932Z         "doc": {
2026-06-09T03:00:38.4852018Z           "complete": true,
2026-06-09T03:00:38.4852104Z           "evidence": [
2026-06-09T03:00:38.4852184Z             {
2026-06-09T03:00:38.4852275Z               "path": "CONTEXT.md",
2026-06-09T03:00:38.4852357Z               "line": 425
2026-06-09T03:00:38.4852443Z             },
2026-06-09T03:00:38.4852518Z             {
2026-06-09T03:00:38.4852614Z               "path": "docs/STORAGE.md",
2026-06-09T03:00:38.4852701Z               "line": 49
2026-06-09T03:00:38.4852776Z             }
2026-06-09T03:00:38.4852857Z           ]
2026-06-09T03:00:38.4852933Z         },
2026-06-09T03:00:38.4853016Z         "impl": {
2026-06-09T03:00:38.4853120Z           "complete": true,
2026-06-09T03:00:38.4853200Z           "evidence": [
2026-06-09T03:00:38.4853282Z             {
2026-06-09T03:00:38.4853405Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4853491Z               "line": 388
2026-06-09T03:00:38.4853567Z             },
2026-06-09T03:00:38.4853650Z             {
2026-06-09T03:00:38.4853758Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4853844Z               "line": 330
2026-06-09T03:00:38.4853926Z             },
2026-06-09T03:00:38.4854002Z             {
2026-06-09T03:00:38.4854110Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4854191Z               "line": 211
2026-06-09T03:00:38.4854272Z             },
2026-06-09T03:00:38.4854352Z             {
2026-06-09T03:00:38.4854451Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4854537Z               "line": 1003
2026-06-09T03:00:38.4854618Z             }
2026-06-09T03:00:38.4854832Z           ]
2026-06-09T03:00:38.4854914Z         },
2026-06-09T03:00:38.4854995Z         "int": {
2026-06-09T03:00:38.4855090Z           "complete": false,
2026-06-09T03:00:38.4855176Z           "evidence": []
2026-06-09T03:00:38.4855253Z         },
2026-06-09T03:00:38.4855333Z         "unit": {
2026-06-09T03:00:38.4855424Z           "complete": true,
2026-06-09T03:00:38.4855510Z           "evidence": [
2026-06-09T03:00:38.4855591Z             {
2026-06-09T03:00:38.4855715Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4855800Z               "line": 1081
2026-06-09T03:00:38.4855878Z             },
2026-06-09T03:00:38.4855958Z             {
2026-06-09T03:00:38.4856068Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4856149Z               "line": 895
2026-06-09T03:00:38.4856235Z             },
2026-06-09T03:00:38.4856315Z             {
2026-06-09T03:00:38.4856425Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4856527Z               "line": 1153
2026-06-09T03:00:38.4856607Z             },
2026-06-09T03:00:38.4856691Z             {
2026-06-09T03:00:38.4856793Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4856879Z               "line": 463
2026-06-09T03:00:38.4857053Z             },
2026-06-09T03:00:38.4857135Z             {
2026-06-09T03:00:38.4857235Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4857316Z               "line": 5143
2026-06-09T03:00:38.4857396Z             }
2026-06-09T03:00:38.4857474Z           ]
2026-06-09T03:00:38.4857550Z         }
2026-06-09T03:00:38.4857630Z       }
2026-06-09T03:00:38.4857711Z     },
2026-06-09T03:00:38.4857789Z     {
2026-06-09T03:00:38.4857879Z       "id": "REQ-INST-15",
2026-06-09T03:00:38.4858537Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-09T03:00:38.4858632Z       "requiredStages": [
2026-06-09T03:00:38.4858713Z         "doc",
2026-06-09T03:00:38.4858795Z         "impl",
2026-06-09T03:00:38.4858875Z         "unit"
2026-06-09T03:00:38.4858956Z       ],
2026-06-09T03:00:38.4859033Z       "stages": {
2026-06-09T03:00:38.4859114Z         "doc": {
2026-06-09T03:00:38.4859204Z           "complete": true,
2026-06-09T03:00:38.4859290Z           "evidence": [
2026-06-09T03:00:38.4859368Z             {
2026-06-09T03:00:38.4859533Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-09T03:00:38.4859613Z               "line": 3
2026-06-09T03:00:38.4859694Z             }
2026-06-09T03:00:38.4859770Z           ]
2026-06-09T03:00:38.4859854Z         },
2026-06-09T03:00:38.4859935Z         "impl": {
2026-06-09T03:00:38.4860026Z           "complete": true,
2026-06-09T03:00:38.4860107Z           "evidence": [
2026-06-09T03:00:38.4860197Z             {
2026-06-09T03:00:38.4860321Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4860403Z               "line": 337
2026-06-09T03:00:38.4860488Z             },
2026-06-09T03:00:38.4860564Z             {
2026-06-09T03:00:38.4860670Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.4860751Z               "line": 60
2026-06-09T03:00:38.4860832Z             },
2026-06-09T03:00:38.4860908Z             {
2026-06-09T03:00:38.4861028Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4861113Z               "line": 336
2026-06-09T03:00:38.4861189Z             },
2026-06-09T03:00:38.4861275Z             {
2026-06-09T03:00:38.4861390Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4861471Z               "line": 385
2026-06-09T03:00:38.4861552Z             },
2026-06-09T03:00:38.4861633Z             {
2026-06-09T03:00:38.4861737Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4862001Z               "line": 19
2026-06-09T03:00:38.4862089Z             },
2026-06-09T03:00:38.4863961Z             {
2026-06-09T03:00:38.4864104Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4864191Z               "line": 70
2026-06-09T03:00:38.4864276Z             },
2026-06-09T03:00:38.4864357Z             {
2026-06-09T03:00:38.4864467Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4864558Z               "line": 96
2026-06-09T03:00:38.4864632Z             },
2026-06-09T03:00:38.4864713Z             {
2026-06-09T03:00:38.4864818Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4864908Z               "line": 121
2026-06-09T03:00:38.4864987Z             },
2026-06-09T03:00:38.4865063Z             {
2026-06-09T03:00:38.4865169Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4865251Z               "line": 172
2026-06-09T03:00:38.4865330Z             },
2026-06-09T03:00:38.4865421Z             {
2026-06-09T03:00:38.4865541Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.4865626Z               "line": 143
2026-06-09T03:00:38.4865702Z             },
2026-06-09T03:00:38.4865784Z             {
2026-06-09T03:00:38.4865884Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4865969Z               "line": 895
2026-06-09T03:00:38.4866045Z             }
2026-06-09T03:00:38.4866128Z           ]
2026-06-09T03:00:38.4866208Z         },
2026-06-09T03:00:38.4866289Z         "int": {
2026-06-09T03:00:38.4866380Z           "complete": false,
2026-06-09T03:00:38.4866462Z           "evidence": []
2026-06-09T03:00:38.4866542Z         },
2026-06-09T03:00:38.4866623Z         "unit": {
2026-06-09T03:00:38.4866710Z           "complete": true,
2026-06-09T03:00:38.4866795Z           "evidence": [
2026-06-09T03:00:38.4866875Z             {
2026-06-09T03:00:38.4867092Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4867185Z               "line": 545
2026-06-09T03:00:38.4867271Z             },
2026-06-09T03:00:38.4867353Z             {
2026-06-09T03:00:38.4867472Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.4867562Z               "line": 606
2026-06-09T03:00:38.4867637Z             },
2026-06-09T03:00:38.4867719Z             {
2026-06-09T03:00:38.4867824Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4867909Z               "line": 213
2026-06-09T03:00:38.4867990Z             },
2026-06-09T03:00:38.4868067Z             {
2026-06-09T03:00:38.4868167Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4868252Z               "line": 249
2026-06-09T03:00:38.4868334Z             },
2026-06-09T03:00:38.4868410Z             {
2026-06-09T03:00:38.4868519Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4868605Z               "line": 262
2026-06-09T03:00:38.4868683Z             },
2026-06-09T03:00:38.4868763Z             {
2026-06-09T03:00:38.4868877Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T03:00:38.4868958Z               "line": 338
2026-06-09T03:00:38.4869035Z             },
2026-06-09T03:00:38.4869116Z             {
2026-06-09T03:00:38.4869225Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.4869313Z               "line": 496
2026-06-09T03:00:38.4869393Z             },
2026-06-09T03:00:38.4869468Z             {
2026-06-09T03:00:38.4869574Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4869655Z               "line": 5080
2026-06-09T03:00:38.4869736Z             },
2026-06-09T03:00:38.4869816Z             {
2026-06-09T03:00:38.4869913Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4869994Z               "line": 6454
2026-06-09T03:00:38.4870073Z             }
2026-06-09T03:00:38.4870158Z           ]
2026-06-09T03:00:38.4870235Z         }
2026-06-09T03:00:38.4870316Z       }
2026-06-09T03:00:38.4870396Z     },
2026-06-09T03:00:38.4870471Z     {
2026-06-09T03:00:38.4870767Z       "id": "REQ-INST-2",
2026-06-09T03:00:38.4870891Z       "title": "Per-node files, synced Psyche mind",
2026-06-09T03:00:38.4870982Z       "requiredStages": [
2026-06-09T03:00:38.4871063Z         "impl",
2026-06-09T03:00:38.4871143Z         "unit"
2026-06-09T03:00:38.4871226Z       ],
2026-06-09T03:00:38.4871306Z       "stages": {
2026-06-09T03:00:38.4871387Z         "doc": {
2026-06-09T03:00:38.4871477Z           "complete": false,
2026-06-09T03:00:38.4871564Z           "evidence": []
2026-06-09T03:00:38.4871645Z         },
2026-06-09T03:00:38.4871726Z         "impl": {
2026-06-09T03:00:38.4871811Z           "complete": true,
2026-06-09T03:00:38.4871898Z           "evidence": [
2026-06-09T03:00:38.4871978Z             {
2026-06-09T03:00:38.4872097Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4872180Z               "line": 86
2026-06-09T03:00:38.4872260Z             },
2026-06-09T03:00:38.4872340Z             {
2026-06-09T03:00:38.4872451Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4872547Z               "line": 28
2026-06-09T03:00:38.4872626Z             },
2026-06-09T03:00:38.4872702Z             {
2026-06-09T03:00:38.4872812Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4872892Z               "line": 74
2026-06-09T03:00:38.4872972Z             },
2026-06-09T03:00:38.4873052Z             {
2026-06-09T03:00:38.4873152Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4873238Z               "line": 96
2026-06-09T03:00:38.4873314Z             },
2026-06-09T03:00:38.4873395Z             {
2026-06-09T03:00:38.4873497Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T03:00:38.4873582Z               "line": 81
2026-06-09T03:00:38.4873662Z             },
2026-06-09T03:00:38.4873743Z             {
2026-06-09T03:00:38.4873849Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T03:00:38.4873930Z               "line": 118
2026-06-09T03:00:38.4874020Z             }
2026-06-09T03:00:38.4874102Z           ]
2026-06-09T03:00:38.4874183Z         },
2026-06-09T03:00:38.4874269Z         "int": {
2026-06-09T03:00:38.4874354Z           "complete": false,
2026-06-09T03:00:38.4874436Z           "evidence": []
2026-06-09T03:00:38.4874516Z         },
2026-06-09T03:00:38.4874597Z         "unit": {
2026-06-09T03:00:38.4874683Z           "complete": true,
2026-06-09T03:00:38.4874770Z           "evidence": [
2026-06-09T03:00:38.4874845Z             {
2026-06-09T03:00:38.4874950Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T03:00:38.4875032Z               "line": 212
2026-06-09T03:00:38.4875113Z             },
2026-06-09T03:00:38.4875193Z             {
2026-06-09T03:00:38.4875292Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T03:00:38.4875383Z               "line": 258
2026-06-09T03:00:38.4875459Z             }
2026-06-09T03:00:38.4875538Z           ]
2026-06-09T03:00:38.4875619Z         }
2026-06-09T03:00:38.4875695Z       }
2026-06-09T03:00:38.4875792Z     },
2026-06-09T03:00:38.4875867Z     {
2026-06-09T03:00:38.4875957Z       "id": "REQ-INST-3",
2026-06-09T03:00:38.4876101Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-09T03:00:38.4876186Z       "requiredStages": [
2026-06-09T03:00:38.4876267Z         "doc",
2026-06-09T03:00:38.4876349Z         "impl",
2026-06-09T03:00:38.4876430Z         "unit"
2026-06-09T03:00:38.4876506Z       ],
2026-06-09T03:00:38.4876591Z       "stages": {
2026-06-09T03:00:38.4876669Z         "doc": {
2026-06-09T03:00:38.4876758Z           "complete": true,
2026-06-09T03:00:38.4876839Z           "evidence": [
2026-06-09T03:00:38.4876916Z             {
2026-06-09T03:00:38.4877111Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-09T03:00:38.4877192Z               "line": 3
2026-06-09T03:00:38.4877275Z             }
2026-06-09T03:00:38.4877356Z           ]
2026-06-09T03:00:38.4877435Z         },
2026-06-09T03:00:38.4877521Z         "impl": {
2026-06-09T03:00:38.4877713Z           "complete": true,
2026-06-09T03:00:38.4877884Z           "evidence": [
2026-06-09T03:00:38.4877962Z             {
2026-06-09T03:00:38.4878078Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T03:00:38.4878159Z               "line": 70
2026-06-09T03:00:38.4878240Z             },
2026-06-09T03:00:38.4878318Z             {
2026-06-09T03:00:38.4878436Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.4878521Z               "line": 480
2026-06-09T03:00:38.4878599Z             },
2026-06-09T03:00:38.4878680Z             {
2026-06-09T03:00:38.4878794Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4878875Z               "line": 202
2026-06-09T03:00:38.4878956Z             },
2026-06-09T03:00:38.4879042Z             {
2026-06-09T03:00:38.4879150Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4879234Z               "line": 291
2026-06-09T03:00:38.4879313Z             },
2026-06-09T03:00:38.4879404Z             {
2026-06-09T03:00:38.4879514Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4879595Z               "line": 325
2026-06-09T03:00:38.4879676Z             },
2026-06-09T03:00:38.4879757Z             {
2026-06-09T03:00:38.4879868Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4879953Z               "line": 341
2026-06-09T03:00:38.4880033Z             },
2026-06-09T03:00:38.4880109Z             {
2026-06-09T03:00:38.4880234Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4880319Z               "line": 218
2026-06-09T03:00:38.4880396Z             },
2026-06-09T03:00:38.4880478Z             {
2026-06-09T03:00:38.4880592Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4880681Z               "line": 374
2026-06-09T03:00:38.4880762Z             },
2026-06-09T03:00:38.4880843Z             {
2026-06-09T03:00:38.4880960Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4881050Z               "line": 45
2026-06-09T03:00:38.4881132Z             },
2026-06-09T03:00:38.4881209Z             {
2026-06-09T03:00:38.4881317Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4881398Z               "line": 114
2026-06-09T03:00:38.4881480Z             },
2026-06-09T03:00:38.4881557Z             {
2026-06-09T03:00:38.4881670Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4881751Z               "line": 152
2026-06-09T03:00:38.4881833Z             },
2026-06-09T03:00:38.4881909Z             {
2026-06-09T03:00:38.4882018Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4882106Z               "line": 168
2026-06-09T03:00:38.4882181Z             },
2026-06-09T03:00:38.4882262Z             {
2026-06-09T03:00:38.4882367Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4882453Z               "line": 178
2026-06-09T03:00:38.4882529Z             },
2026-06-09T03:00:38.4882619Z             {
2026-06-09T03:00:38.4882725Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4882811Z               "line": 210
2026-06-09T03:00:38.4882891Z             },
2026-06-09T03:00:38.4882972Z             {
2026-06-09T03:00:38.4883078Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4883163Z               "line": 287
2026-06-09T03:00:38.4883238Z             },
2026-06-09T03:00:38.4883319Z             {
2026-06-09T03:00:38.4883424Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4883508Z               "line": 311
2026-06-09T03:00:38.4883588Z             },
2026-06-09T03:00:38.4883664Z             {
2026-06-09T03:00:38.4883775Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4883856Z               "line": 387
2026-06-09T03:00:38.4883936Z             },
2026-06-09T03:00:38.4884013Z             {
2026-06-09T03:00:38.4884199Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4884347Z               "line": 436
2026-06-09T03:00:38.4884424Z             },
2026-06-09T03:00:38.4884504Z             {
2026-06-09T03:00:38.4884609Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-09T03:00:38.4884696Z               "line": 37
2026-06-09T03:00:38.4884776Z             },
2026-06-09T03:00:38.4884852Z             {
2026-06-09T03:00:38.4884968Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4885049Z               "line": 62
2026-06-09T03:00:38.4885128Z             },
2026-06-09T03:00:38.4885209Z             {
2026-06-09T03:00:38.4885316Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4885401Z               "line": 190
2026-06-09T03:00:38.4885477Z             },
2026-06-09T03:00:38.4885558Z             {
2026-06-09T03:00:38.4885659Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4885744Z               "line": 1151
2026-06-09T03:00:38.4885819Z             }
2026-06-09T03:00:38.4885914Z           ]
2026-06-09T03:00:38.4885996Z         },
2026-06-09T03:00:38.4886075Z         "int": {
2026-06-09T03:00:38.4886165Z           "complete": false,
2026-06-09T03:00:38.4886246Z           "evidence": []
2026-06-09T03:00:38.4886327Z         },
2026-06-09T03:00:38.4886408Z         "unit": {
2026-06-09T03:00:38.4886494Z           "complete": true,
2026-06-09T03:00:38.4886575Z           "evidence": [
2026-06-09T03:00:38.4886652Z             {
2026-06-09T03:00:38.4886765Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.4886846Z               "line": 360
2026-06-09T03:00:38.4886919Z             },
2026-06-09T03:00:38.4887085Z             {
2026-06-09T03:00:38.4887190Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4887277Z               "line": 664
2026-06-09T03:00:38.4887352Z             },
2026-06-09T03:00:38.4887433Z             {
2026-06-09T03:00:38.4887544Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4887638Z               "line": 721
2026-06-09T03:00:38.4887728Z             },
2026-06-09T03:00:38.4887830Z             {
2026-06-09T03:00:38.4887939Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4888014Z               "line": 1182
2026-06-09T03:00:38.4888096Z             },
2026-06-09T03:00:38.4888173Z             {
2026-06-09T03:00:38.4888296Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4888386Z               "line": 1322
2026-06-09T03:00:38.4888464Z             },
2026-06-09T03:00:38.4888546Z             {
2026-06-09T03:00:38.4888658Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4888738Z               "line": 447
2026-06-09T03:00:38.4888820Z             },
2026-06-09T03:00:38.4888897Z             {
2026-06-09T03:00:38.4889005Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4889091Z               "line": 483
2026-06-09T03:00:38.4889169Z             },
2026-06-09T03:00:38.4889259Z             {
2026-06-09T03:00:38.4889372Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4889454Z               "line": 538
2026-06-09T03:00:38.4889535Z             },
2026-06-09T03:00:38.4889611Z             {
2026-06-09T03:00:38.4889720Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4889808Z               "line": 695
2026-06-09T03:00:38.4889883Z             },
2026-06-09T03:00:38.4889964Z             {
2026-06-09T03:00:38.4890069Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4890155Z               "line": 929
2026-06-09T03:00:38.4890231Z             },
2026-06-09T03:00:38.4890312Z             {
2026-06-09T03:00:38.4890418Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4890503Z               "line": 943
2026-06-09T03:00:38.4890584Z             },
2026-06-09T03:00:38.4890660Z             {
2026-06-09T03:00:38.4890870Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4891043Z               "line": 1193
2026-06-09T03:00:38.4891119Z             },
2026-06-09T03:00:38.4891198Z             {
2026-06-09T03:00:38.4891307Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.4891389Z               "line": 413
2026-06-09T03:00:38.4891469Z             },
2026-06-09T03:00:38.4891549Z             {
2026-06-09T03:00:38.4891658Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4891740Z               "line": 5104
2026-06-09T03:00:38.4891816Z             }
2026-06-09T03:00:38.4891897Z           ]
2026-06-09T03:00:38.4891978Z         }
2026-06-09T03:00:38.4892055Z       }
2026-06-09T03:00:38.4892136Z     },
2026-06-09T03:00:38.4892216Z     {
2026-06-09T03:00:38.4892307Z       "id": "REQ-INST-4",
2026-06-09T03:00:38.4892474Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-09T03:00:38.4892564Z       "requiredStages": [
2026-06-09T03:00:38.4892646Z         "impl",
2026-06-09T03:00:38.4892751Z         "unit"
2026-06-09T03:00:38.4892831Z       ],
2026-06-09T03:00:38.4892917Z       "stages": {
2026-06-09T03:00:38.4892995Z         "doc": {
2026-06-09T03:00:38.4893084Z           "complete": false,
2026-06-09T03:00:38.4893170Z           "evidence": []
2026-06-09T03:00:38.4893251Z         },
2026-06-09T03:00:38.4893338Z         "impl": {
2026-06-09T03:00:38.4893432Z           "complete": true,
2026-06-09T03:00:38.4893523Z           "evidence": [
2026-06-09T03:00:38.4893600Z             {
2026-06-09T03:00:38.4893718Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4893803Z               "line": 292
2026-06-09T03:00:38.4893884Z             },
2026-06-09T03:00:38.4893965Z             {
2026-06-09T03:00:38.4894082Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4894167Z               "line": 202
2026-06-09T03:00:38.4894249Z             },
2026-06-09T03:00:38.4894331Z             {
2026-06-09T03:00:38.4894449Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4894544Z               "line": 234
2026-06-09T03:00:38.4894622Z             },
2026-06-09T03:00:38.4894702Z             {
2026-06-09T03:00:38.4894816Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4894898Z               "line": 274
2026-06-09T03:00:38.4894979Z             }
2026-06-09T03:00:38.4895060Z           ]
2026-06-09T03:00:38.4895140Z         },
2026-06-09T03:00:38.4895223Z         "int": {
2026-06-09T03:00:38.4895312Z           "complete": false,
2026-06-09T03:00:38.4895398Z           "evidence": []
2026-06-09T03:00:38.4895479Z         },
2026-06-09T03:00:38.4895561Z         "unit": {
2026-06-09T03:00:38.4895651Z           "complete": true,
2026-06-09T03:00:38.4895732Z           "evidence": [
2026-06-09T03:00:38.4895813Z             {
2026-06-09T03:00:38.4895928Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.4896017Z               "line": 716
2026-06-09T03:00:38.4896113Z             },
2026-06-09T03:00:38.4896195Z             {
2026-06-09T03:00:38.4896309Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4896389Z               "line": 559
2026-06-09T03:00:38.4896469Z             },
2026-06-09T03:00:38.4896556Z             {
2026-06-09T03:00:38.4896663Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4896749Z               "line": 666
2026-06-09T03:00:38.4896830Z             },
2026-06-09T03:00:38.4896907Z             {
2026-06-09T03:00:38.4897106Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4897193Z               "line": 748
2026-06-09T03:00:38.4897274Z             }
2026-06-09T03:00:38.4897353Z           ]
2026-06-09T03:00:38.4897436Z         }
2026-06-09T03:00:38.4897517Z       }
2026-06-09T03:00:38.4897598Z     },
2026-06-09T03:00:38.4897678Z     {
2026-06-09T03:00:38.4897765Z       "id": "REQ-INST-5",
2026-06-09T03:00:38.4898036Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-09T03:00:38.4898231Z       "requiredStages": [
2026-06-09T03:00:38.4898312Z         "impl",
2026-06-09T03:00:38.4898395Z         "unit",
2026-06-09T03:00:38.4898481Z         "int"
2026-06-09T03:00:38.4898565Z       ],
2026-06-09T03:00:38.4898646Z       "stages": {
2026-06-09T03:00:38.4898729Z         "doc": {
2026-06-09T03:00:38.4898819Z           "complete": false,
2026-06-09T03:00:38.4898903Z           "evidence": []
2026-06-09T03:00:38.4898985Z         },
2026-06-09T03:00:38.4899067Z         "impl": {
2026-06-09T03:00:38.4899157Z           "complete": true,
2026-06-09T03:00:38.4899242Z           "evidence": [
2026-06-09T03:00:38.4899327Z             {
2026-06-09T03:00:38.4899442Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4899528Z               "line": 41
2026-06-09T03:00:38.4899609Z             },
2026-06-09T03:00:38.4899690Z             {
2026-06-09T03:00:38.4899795Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4899894Z               "line": 68
2026-06-09T03:00:38.4899975Z             },
2026-06-09T03:00:38.4900058Z             {
2026-06-09T03:00:38.4900162Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4900247Z               "line": 99
2026-06-09T03:00:38.4900325Z             },
2026-06-09T03:00:38.4900406Z             {
2026-06-09T03:00:38.4900510Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4900595Z               "line": 183
2026-06-09T03:00:38.4900678Z             },
2026-06-09T03:00:38.4900758Z             {
2026-06-09T03:00:38.4900863Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4900944Z               "line": 314
2026-06-09T03:00:38.4901026Z             }
2026-06-09T03:00:38.4901110Z           ]
2026-06-09T03:00:38.4901192Z         },
2026-06-09T03:00:38.4901279Z         "int": {
2026-06-09T03:00:38.4901364Z           "complete": true,
2026-06-09T03:00:38.4901449Z           "evidence": [
2026-06-09T03:00:38.4901540Z             {
2026-06-09T03:00:38.4901665Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.4901753Z               "line": 156
2026-06-09T03:00:38.4901834Z             },
2026-06-09T03:00:38.4901916Z             {
2026-06-09T03:00:38.4902029Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-09T03:00:38.4902114Z               "line": 102
2026-06-09T03:00:38.4902193Z             },
2026-06-09T03:00:38.4902276Z             {
2026-06-09T03:00:38.4902391Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.4902481Z               "line": 636
2026-06-09T03:00:38.4902562Z             },
2026-06-09T03:00:38.4902638Z             {
2026-06-09T03:00:38.4902752Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.4902833Z               "line": 973
2026-06-09T03:00:38.4902916Z             }
2026-06-09T03:00:38.4902996Z           ]
2026-06-09T03:00:38.4903072Z         },
2026-06-09T03:00:38.4903157Z         "unit": {
2026-06-09T03:00:38.4903254Z           "complete": true,
2026-06-09T03:00:38.4903344Z           "evidence": [
2026-06-09T03:00:38.4903424Z             {
2026-06-09T03:00:38.4903530Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4903620Z               "line": 531
2026-06-09T03:00:38.4903701Z             },
2026-06-09T03:00:38.4903782Z             {
2026-06-09T03:00:38.4903889Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.4903977Z               "line": 574
2026-06-09T03:00:38.4904059Z             },
2026-06-09T03:00:38.4904141Z             {
2026-06-09T03:00:38.4904250Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T03:00:38.4904335Z               "line": 219
2026-06-09T03:00:38.4904420Z             }
2026-06-09T03:00:38.4904497Z           ]
2026-06-09T03:00:38.4904577Z         }
2026-06-09T03:00:38.4904657Z       }
2026-06-09T03:00:38.4904737Z     },
2026-06-09T03:00:38.4904819Z     {
2026-06-09T03:00:38.4904980Z       "id": "REQ-INST-6",
2026-06-09T03:00:38.4905224Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-09T03:00:38.4905314Z       "requiredStages": [
2026-06-09T03:00:38.4905395Z         "impl",
2026-06-09T03:00:38.4905477Z         "unit",
2026-06-09T03:00:38.4905558Z         "int"
2026-06-09T03:00:38.4905643Z       ],
2026-06-09T03:00:38.4905724Z       "stages": {
2026-06-09T03:00:38.4905806Z         "doc": {
2026-06-09T03:00:38.4905896Z           "complete": true,
2026-06-09T03:00:38.4905982Z           "evidence": [
2026-06-09T03:00:38.4906059Z             {
2026-06-09T03:00:38.4906159Z               "path": "docs/DEFERRED.md",
2026-06-09T03:00:38.4906249Z               "line": 13
2026-06-09T03:00:38.4906330Z             }
2026-06-09T03:00:38.4906412Z           ]
2026-06-09T03:00:38.4906488Z         },
2026-06-09T03:00:38.4906573Z         "impl": {
2026-06-09T03:00:38.4906659Z           "complete": true,
2026-06-09T03:00:38.4906746Z           "evidence": [
2026-06-09T03:00:38.4906841Z             {
2026-06-09T03:00:38.4907054Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.4907139Z               "line": 391
2026-06-09T03:00:38.4907219Z             },
2026-06-09T03:00:38.4907304Z             {
2026-06-09T03:00:38.4907414Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T03:00:38.4907501Z               "line": 27
2026-06-09T03:00:38.4907580Z             },
2026-06-09T03:00:38.4907661Z             {
2026-06-09T03:00:38.4907772Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T03:00:38.4907858Z               "line": 73
2026-06-09T03:00:38.4907938Z             },
2026-06-09T03:00:38.4908020Z             {
2026-06-09T03:00:38.4908129Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T03:00:38.4908210Z               "line": 182
2026-06-09T03:00:38.4908282Z             },
2026-06-09T03:00:38.4908359Z             {
2026-06-09T03:00:38.4908477Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4908567Z               "line": 424
2026-06-09T03:00:38.4908650Z             },
2026-06-09T03:00:38.4908736Z             {
2026-06-09T03:00:38.4908849Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-09T03:00:38.4908930Z               "line": 31
2026-06-09T03:00:38.4909031Z             },
2026-06-09T03:00:38.4909125Z             {
2026-06-09T03:00:38.4909231Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.4909317Z               "line": 182
2026-06-09T03:00:38.4909398Z             },
2026-06-09T03:00:38.4909482Z             {
2026-06-09T03:00:38.4909589Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4909694Z               "line": 81
2026-06-09T03:00:38.4909773Z             },
2026-06-09T03:00:38.4909849Z             {
2026-06-09T03:00:38.4909949Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4910036Z               "line": 1152
2026-06-09T03:00:38.4910116Z             },
2026-06-09T03:00:38.4910202Z             {
2026-06-09T03:00:38.4910308Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.4910394Z               "line": 179
2026-06-09T03:00:38.4910469Z             },
2026-06-09T03:00:38.4910550Z             {
2026-06-09T03:00:38.4910651Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.4910737Z               "line": 215
2026-06-09T03:00:38.4910812Z             }
2026-06-09T03:00:38.4910890Z           ]
2026-06-09T03:00:38.4910971Z         },
2026-06-09T03:00:38.4911052Z         "int": {
2026-06-09T03:00:38.4911141Z           "complete": true,
2026-06-09T03:00:38.4911228Z           "evidence": [
2026-06-09T03:00:38.4911309Z             {
2026-06-09T03:00:38.4911427Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.4911509Z               "line": 650
2026-06-09T03:00:38.4911591Z             },
2026-06-09T03:00:38.4911670Z             {
2026-06-09T03:00:38.4911786Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.4912052Z               "line": 1018
2026-06-09T03:00:38.4912134Z             },
2026-06-09T03:00:38.4912211Z             {
2026-06-09T03:00:38.4912314Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.4912399Z               "line": 725
2026-06-09T03:00:38.4912476Z             }
2026-06-09T03:00:38.4912562Z           ]
2026-06-09T03:00:38.4912636Z         },
2026-06-09T03:00:38.4912721Z         "unit": {
2026-06-09T03:00:38.4912812Z           "complete": true,
2026-06-09T03:00:38.4912903Z           "evidence": [
2026-06-09T03:00:38.4912983Z             {
2026-06-09T03:00:38.4913098Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.4913189Z               "line": 660
2026-06-09T03:00:38.4913266Z             },
2026-06-09T03:00:38.4913350Z             {
2026-06-09T03:00:38.4913461Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.4913546Z               "line": 897
2026-06-09T03:00:38.4913632Z             },
2026-06-09T03:00:38.4913727Z             {
2026-06-09T03:00:38.4913842Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-09T03:00:38.4913928Z               "line": 66
2026-06-09T03:00:38.4914009Z             },
2026-06-09T03:00:38.4914090Z             {
2026-06-09T03:00:38.4914199Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.4914281Z               "line": 272
2026-06-09T03:00:38.4914366Z             },
2026-06-09T03:00:38.4914444Z             {
2026-06-09T03:00:38.4914557Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T03:00:38.4914648Z               "line": 201
2026-06-09T03:00:38.4914725Z             }
2026-06-09T03:00:38.4914810Z           ]
2026-06-09T03:00:38.4914890Z         }
2026-06-09T03:00:38.4914975Z       }
2026-06-09T03:00:38.4915057Z     },
2026-06-09T03:00:38.4915137Z     {
2026-06-09T03:00:38.4915226Z       "id": "REQ-INST-7",
2026-06-09T03:00:38.4915355Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-09T03:00:38.4915461Z       "requiredStages": [
2026-06-09T03:00:38.4915545Z         "impl",
2026-06-09T03:00:38.4915630Z         "unit",
2026-06-09T03:00:38.4915713Z         "int"
2026-06-09T03:00:38.4915789Z       ],
2026-06-09T03:00:38.4915874Z       "stages": {
2026-06-09T03:00:38.4915960Z         "doc": {
2026-06-09T03:00:38.4916052Z           "complete": false,
2026-06-09T03:00:38.4916137Z           "evidence": []
2026-06-09T03:00:38.4916222Z         },
2026-06-09T03:00:38.4916309Z         "impl": {
2026-06-09T03:00:38.4916395Z           "complete": true,
2026-06-09T03:00:38.4916480Z           "evidence": [
2026-06-09T03:00:38.4916561Z             {
2026-06-09T03:00:38.4916682Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.4916766Z               "line": 436
2026-06-09T03:00:38.4916847Z             },
2026-06-09T03:00:38.4916928Z             {
2026-06-09T03:00:38.4917128Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.4917214Z               "line": 42
2026-06-09T03:00:38.4917316Z             },
2026-06-09T03:00:38.4917396Z             {
2026-06-09T03:00:38.4917518Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4917609Z               "line": 27
2026-06-09T03:00:38.4917690Z             },
2026-06-09T03:00:38.4917769Z             {
2026-06-09T03:00:38.4917893Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4917974Z               "line": 191
2026-06-09T03:00:38.4918061Z             },
2026-06-09T03:00:38.4918141Z             {
2026-06-09T03:00:38.4918260Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4918347Z               "line": 328
2026-06-09T03:00:38.4918427Z             },
2026-06-09T03:00:38.4918507Z             {
2026-06-09T03:00:38.4918623Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-09T03:00:38.4918703Z               "line": 59
2026-06-09T03:00:38.4918784Z             },
2026-06-09T03:00:38.4918865Z             {
2026-06-09T03:00:38.4919171Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4919258Z               "line": 41
2026-06-09T03:00:38.4919338Z             },
2026-06-09T03:00:38.4919419Z             {
2026-06-09T03:00:38.4919539Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.4919620Z               "line": 27
2026-06-09T03:00:38.4919699Z             },
2026-06-09T03:00:38.4919776Z             {
2026-06-09T03:00:38.4919887Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.4919972Z               "line": 119
2026-06-09T03:00:38.4920057Z             },
2026-06-09T03:00:38.4920159Z             {
2026-06-09T03:00:38.4920273Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.4920362Z               "line": 134
2026-06-09T03:00:38.4920443Z             },
2026-06-09T03:00:38.4920519Z             {
2026-06-09T03:00:38.4920630Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T03:00:38.4920729Z               "line": 139
2026-06-09T03:00:38.4920815Z             }
2026-06-09T03:00:38.4920892Z           ]
2026-06-09T03:00:38.4920973Z         },
2026-06-09T03:00:38.4921057Z         "int": {
2026-06-09T03:00:38.4921144Z           "complete": true,
2026-06-09T03:00:38.4921230Z           "evidence": [
2026-06-09T03:00:38.4921311Z             {
2026-06-09T03:00:38.4921425Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-09T03:00:38.4921512Z               "line": 102
2026-06-09T03:00:38.4921592Z             },
2026-06-09T03:00:38.4921672Z             {
2026-06-09T03:00:38.4921788Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.4921874Z               "line": 594
2026-06-09T03:00:38.4921950Z             },
2026-06-09T03:00:38.4922031Z             {
2026-06-09T03:00:38.4922146Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.4922235Z               "line": 868
2026-06-09T03:00:38.4922316Z             }
2026-06-09T03:00:38.4922404Z           ]
2026-06-09T03:00:38.4922485Z         },
2026-06-09T03:00:38.4922564Z         "unit": {
2026-06-09T03:00:38.4922660Z           "complete": true,
2026-06-09T03:00:38.4922742Z           "evidence": [
2026-06-09T03:00:38.4922823Z             {
2026-06-09T03:00:38.4922941Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4923026Z               "line": 1052
2026-06-09T03:00:38.4923107Z             },
2026-06-09T03:00:38.4923191Z             {
2026-06-09T03:00:38.4923310Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.4925198Z               "line": 1383
2026-06-09T03:00:38.4925299Z             },
2026-06-09T03:00:38.4925389Z             {
2026-06-09T03:00:38.4925526Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-09T03:00:38.4925612Z               "line": 84
2026-06-09T03:00:38.4925693Z             },
2026-06-09T03:00:38.4925777Z             {
2026-06-09T03:00:38.4925915Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4926006Z               "line": 763
2026-06-09T03:00:38.4926086Z             },
2026-06-09T03:00:38.4926167Z             {
2026-06-09T03:00:38.4926288Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4926373Z               "line": 774
2026-06-09T03:00:38.4926453Z             },
2026-06-09T03:00:38.4926535Z             {
2026-06-09T03:00:38.4926649Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4926735Z               "line": 789
2026-06-09T03:00:38.4926816Z             },
2026-06-09T03:00:38.4926893Z             {
2026-06-09T03:00:38.4927111Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.4927198Z               "line": 165
2026-06-09T03:00:38.4927279Z             },
2026-06-09T03:00:38.4927359Z             {
2026-06-09T03:00:38.4927474Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.4927561Z               "line": 180
2026-06-09T03:00:38.4927866Z             },
2026-06-09T03:00:38.4927951Z             {
2026-06-09T03:00:38.4928069Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.4928154Z               "line": 213
2026-06-09T03:00:38.4928231Z             }
2026-06-09T03:00:38.4928315Z           ]
2026-06-09T03:00:38.4928395Z         }
2026-06-09T03:00:38.4928476Z       }
2026-06-09T03:00:38.4928559Z     },
2026-06-09T03:00:38.4928639Z     {
2026-06-09T03:00:38.4928729Z       "id": "REQ-INST-8",
2026-06-09T03:00:38.4928873Z       "title": "Remote-control mode distinct from local operation",
2026-06-09T03:00:38.4928964Z       "requiredStages": [
2026-06-09T03:00:38.4929048Z         "impl",
2026-06-09T03:00:38.4929130Z         "unit",
2026-06-09T03:00:38.4929212Z         "int"
2026-06-09T03:00:38.4929293Z       ],
2026-06-09T03:00:38.4929373Z       "stages": {
2026-06-09T03:00:38.4929455Z         "doc": {
2026-06-09T03:00:38.4929545Z           "complete": false,
2026-06-09T03:00:38.4929631Z           "evidence": []
2026-06-09T03:00:38.4929731Z         },
2026-06-09T03:00:38.4929813Z         "impl": {
2026-06-09T03:00:38.4929903Z           "complete": true,
2026-06-09T03:00:38.4929989Z           "evidence": [
2026-06-09T03:00:38.4930070Z             {
2026-06-09T03:00:38.4930185Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T03:00:38.4930269Z               "line": 98
2026-06-09T03:00:38.4930346Z             },
2026-06-09T03:00:38.4930429Z             {
2026-06-09T03:00:38.4930541Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T03:00:38.4930627Z               "line": 209
2026-06-09T03:00:38.4930704Z             },
2026-06-09T03:00:38.4930786Z             {
2026-06-09T03:00:38.4930894Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T03:00:38.4930984Z               "line": 230
2026-06-09T03:00:38.4931061Z             },
2026-06-09T03:00:38.4931142Z             {
2026-06-09T03:00:38.4931255Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-09T03:00:38.4931361Z               "line": 35
2026-06-09T03:00:38.4931443Z             }
2026-06-09T03:00:38.4931523Z           ]
2026-06-09T03:00:38.4931603Z         },
2026-06-09T03:00:38.4931685Z         "int": {
2026-06-09T03:00:38.4931771Z           "complete": true,
2026-06-09T03:00:38.4931857Z           "evidence": [
2026-06-09T03:00:38.4931932Z             {
2026-06-09T03:00:38.4932048Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.4932133Z               "line": 414
2026-06-09T03:00:38.4932214Z             },
2026-06-09T03:00:38.4932295Z             {
2026-06-09T03:00:38.4932406Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.4932490Z               "line": 932
2026-06-09T03:00:38.4932571Z             }
2026-06-09T03:00:38.4932649Z           ]
2026-06-09T03:00:38.4932730Z         },
2026-06-09T03:00:38.4932809Z         "unit": {
2026-06-09T03:00:38.4932896Z           "complete": true,
2026-06-09T03:00:38.4932978Z           "evidence": [
2026-06-09T03:00:38.4933073Z             {
2026-06-09T03:00:38.4933182Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T03:00:38.4933269Z               "line": 181
2026-06-09T03:00:38.4933360Z             },
2026-06-09T03:00:38.4933458Z             {
2026-06-09T03:00:38.4933571Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T03:00:38.4933653Z               "line": 259
2026-06-09T03:00:38.4933733Z             },
2026-06-09T03:00:38.4933817Z             {
2026-06-09T03:00:38.4933928Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-09T03:00:38.4934009Z               "line": 70
2026-06-09T03:00:38.4934090Z             },
2026-06-09T03:00:38.4934170Z             {
2026-06-09T03:00:38.4934281Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-09T03:00:38.4934366Z               "line": 110
2026-06-09T03:00:38.4934442Z             }
2026-06-09T03:00:38.4934523Z           ]
2026-06-09T03:00:38.4934601Z         }
2026-06-09T03:00:38.4934752Z       }
2026-06-09T03:00:38.4934901Z     },
2026-06-09T03:00:38.4934977Z     {
2026-06-09T03:00:38.4935067Z       "id": "REQ-INST-9",
2026-06-09T03:00:38.4935240Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-09T03:00:38.4935329Z       "requiredStages": [
2026-06-09T03:00:38.4935410Z         "impl",
2026-06-09T03:00:38.4935496Z         "unit"
2026-06-09T03:00:38.4935574Z       ],
2026-06-09T03:00:38.4935658Z       "stages": {
2026-06-09T03:00:38.4935739Z         "doc": {
2026-06-09T03:00:38.4935826Z           "complete": false,
2026-06-09T03:00:38.4935913Z           "evidence": []
2026-06-09T03:00:38.4935991Z         },
2026-06-09T03:00:38.4936077Z         "impl": {
2026-06-09T03:00:38.4936163Z           "complete": true,
2026-06-09T03:00:38.4936248Z           "evidence": [
2026-06-09T03:00:38.4936332Z             {
2026-06-09T03:00:38.4936446Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4936528Z               "line": 401
2026-06-09T03:00:38.4936624Z             }
2026-06-09T03:00:38.4936704Z           ]
2026-06-09T03:00:38.4936785Z         },
2026-06-09T03:00:38.4936862Z         "int": {
2026-06-09T03:00:38.4937042Z           "complete": false,
2026-06-09T03:00:38.4937128Z           "evidence": []
2026-06-09T03:00:38.4937209Z         },
2026-06-09T03:00:38.4937286Z         "unit": {
2026-06-09T03:00:38.4937376Z           "complete": true,
2026-06-09T03:00:38.4937463Z           "evidence": [
2026-06-09T03:00:38.4937538Z             {
2026-06-09T03:00:38.4937653Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4937739Z               "line": 1300
2026-06-09T03:00:38.4937821Z             },
2026-06-09T03:00:38.4937901Z             {
2026-06-09T03:00:38.4938015Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4938097Z               "line": 1309
2026-06-09T03:00:38.4938182Z             },
2026-06-09T03:00:38.4938258Z             {
2026-06-09T03:00:38.4938373Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4938465Z               "line": 1325
2026-06-09T03:00:38.4938544Z             },
2026-06-09T03:00:38.4938624Z             {
2026-06-09T03:00:38.4938734Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4938819Z               "line": 1337
2026-06-09T03:00:38.4938899Z             },
2026-06-09T03:00:38.4938974Z             {
2026-06-09T03:00:38.4939085Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.4939171Z               "line": 1357
2026-06-09T03:00:38.4939251Z             }
2026-06-09T03:00:38.4939332Z           ]
2026-06-09T03:00:38.4939410Z         }
2026-06-09T03:00:38.4939505Z       }
2026-06-09T03:00:38.4939590Z     },
2026-06-09T03:00:38.4939671Z     {
2026-06-09T03:00:38.4939757Z       "id": "REQ-INSTALL-1",
2026-06-09T03:00:38.4939933Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-09T03:00:38.4940025Z       "requiredStages": [
2026-06-09T03:00:38.4940115Z         "doc",
2026-06-09T03:00:38.4940200Z         "impl",
2026-06-09T03:00:38.4940276Z         "int"
2026-06-09T03:00:38.4940359Z       ],
2026-06-09T03:00:38.4940434Z       "stages": {
2026-06-09T03:00:38.4940520Z         "doc": {
2026-06-09T03:00:38.4940606Z           "complete": true,
2026-06-09T03:00:38.4940688Z           "evidence": [
2026-06-09T03:00:38.4940763Z             {
2026-06-09T03:00:38.4940849Z               "path": "CONTEXT.md",
2026-06-09T03:00:38.4940935Z               "line": 576
2026-06-09T03:00:38.4941012Z             }
2026-06-09T03:00:38.4941096Z           ]
2026-06-09T03:00:38.4941177Z         },
2026-06-09T03:00:38.4941260Z         "impl": {
2026-06-09T03:00:38.4941360Z           "complete": true,
2026-06-09T03:00:38.4941454Z           "evidence": [
2026-06-09T03:00:38.4941534Z             {
2026-06-09T03:00:38.4941625Z               "path": "installer/install.ps1",
2026-06-09T03:00:38.4941712Z               "line": 57
2026-06-09T03:00:38.4941792Z             },
2026-06-09T03:00:38.4942116Z             {
2026-06-09T03:00:38.4942226Z               "path": "installer/install.sh",
2026-06-09T03:00:38.4942307Z               "line": 52
2026-06-09T03:00:38.4942389Z             }
2026-06-09T03:00:38.4942464Z           ]
2026-06-09T03:00:38.4942545Z         },
2026-06-09T03:00:38.4942627Z         "int": {
2026-06-09T03:00:38.4942712Z           "complete": true,
2026-06-09T03:00:38.4942798Z           "evidence": [
2026-06-09T03:00:38.4942879Z             {
2026-06-09T03:00:38.4942994Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-09T03:00:38.4943075Z               "line": 21
2026-06-09T03:00:38.4943156Z             }
2026-06-09T03:00:38.4943233Z           ]
2026-06-09T03:00:38.4943314Z         },
2026-06-09T03:00:38.4943394Z         "unit": {
2026-06-09T03:00:38.4943480Z           "complete": false,
2026-06-09T03:00:38.4943567Z           "evidence": []
2026-06-09T03:00:38.4943647Z         }
2026-06-09T03:00:38.4943732Z       }
2026-06-09T03:00:38.4943824Z     },
2026-06-09T03:00:38.4943901Z     {
2026-06-09T03:00:38.4943994Z       "id": "REQ-INSTALL-2",
2026-06-09T03:00:38.4944122Z       "title": "Marketplace-repackaging-friendly install",
2026-06-09T03:00:38.4944213Z       "requiredStages": [
2026-06-09T03:00:38.4944293Z         "doc"
2026-06-09T03:00:38.4944377Z       ],
2026-06-09T03:00:38.4944458Z       "stages": {
2026-06-09T03:00:38.4944541Z         "doc": {
2026-06-09T03:00:38.4944632Z           "complete": true,
2026-06-09T03:00:38.4944716Z           "evidence": [
2026-06-09T03:00:38.4944798Z             {
2026-06-09T03:00:38.4944889Z               "path": "CONTEXT.md",
2026-06-09T03:00:38.4944974Z               "line": 577
2026-06-09T03:00:38.4945054Z             }
2026-06-09T03:00:38.4945137Z           ]
2026-06-09T03:00:38.4945213Z         },
2026-06-09T03:00:38.4945298Z         "impl": {
2026-06-09T03:00:38.4945389Z           "complete": false,
2026-06-09T03:00:38.4945475Z           "evidence": []
2026-06-09T03:00:38.4945556Z         },
2026-06-09T03:00:38.4945660Z         "int": {
2026-06-09T03:00:38.4945746Z           "complete": false,
2026-06-09T03:00:38.4945833Z           "evidence": []
2026-06-09T03:00:38.4945913Z         },
2026-06-09T03:00:38.4945999Z         "unit": {
2026-06-09T03:00:38.4946086Z           "complete": false,
2026-06-09T03:00:38.4946172Z           "evidence": []
2026-06-09T03:00:38.4946251Z         }
2026-06-09T03:00:38.4946333Z       }
2026-06-09T03:00:38.4946415Z     },
2026-06-09T03:00:38.4946496Z     {
2026-06-09T03:00:38.4946584Z       "id": "REQ-INSTALL-3",
2026-06-09T03:00:38.4946718Z       "title": "Idempotent + interactive-optional first run",
2026-06-09T03:00:38.4946813Z       "requiredStages": [
2026-06-09T03:00:38.4946892Z         "impl",
2026-06-09T03:00:38.4947059Z         "int"
2026-06-09T03:00:38.4947141Z       ],
2026-06-09T03:00:38.4947226Z       "stages": {
2026-06-09T03:00:38.4947311Z         "doc": {
2026-06-09T03:00:38.4947403Z           "complete": false,
2026-06-09T03:00:38.4947493Z           "evidence": []
2026-06-09T03:00:38.4947583Z         },
2026-06-09T03:00:38.4947664Z         "impl": {
2026-06-09T03:00:38.4947756Z           "complete": true,
2026-06-09T03:00:38.4947837Z           "evidence": [
2026-06-09T03:00:38.4947922Z             {
2026-06-09T03:00:38.4948023Z               "path": "installer/install.ps1",
2026-06-09T03:00:38.4948113Z               "line": 100
2026-06-09T03:00:38.4948198Z             },
2026-06-09T03:00:38.4948275Z             {
2026-06-09T03:00:38.4948376Z               "path": "installer/install.ps1",
2026-06-09T03:00:38.4948461Z               "line": 111
2026-06-09T03:00:38.4948542Z             },
2026-06-09T03:00:38.4948623Z             {
2026-06-09T03:00:38.4948719Z               "path": "installer/install.sh",
2026-06-09T03:00:38.4948804Z               "line": 79
2026-06-09T03:00:38.4948885Z             }
2026-06-09T03:00:38.4948967Z           ]
2026-06-09T03:00:38.4949048Z         },
2026-06-09T03:00:38.4949127Z         "int": {
2026-06-09T03:00:38.4949318Z           "complete": true,
2026-06-09T03:00:38.4949506Z           "evidence": [
2026-06-09T03:00:38.4949587Z             {
2026-06-09T03:00:38.4949708Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-09T03:00:38.4949792Z               "line": 167
2026-06-09T03:00:38.4949868Z             }
2026-06-09T03:00:38.4949950Z           ]
2026-06-09T03:00:38.4950031Z         },
2026-06-09T03:00:38.4950116Z         "unit": {
2026-06-09T03:00:38.4950212Z           "complete": false,
2026-06-09T03:00:38.4950294Z           "evidence": []
2026-06-09T03:00:38.4950374Z         }
2026-06-09T03:00:38.4950455Z       }
2026-06-09T03:00:38.4950536Z     },
2026-06-09T03:00:38.4950614Z     {
2026-06-09T03:00:38.4950703Z       "id": "REQ-INSTALL-4",
2026-06-09T03:00:38.4951300Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-09T03:00:38.4951404Z       "requiredStages": [
2026-06-09T03:00:38.4951490Z         "impl",
2026-06-09T03:00:38.4951573Z         "unit"
2026-06-09T03:00:38.4951652Z       ],
2026-06-09T03:00:38.4951732Z       "stages": {
2026-06-09T03:00:38.4951820Z         "doc": {
2026-06-09T03:00:38.4951911Z           "complete": false,
2026-06-09T03:00:38.4951995Z           "evidence": []
2026-06-09T03:00:38.4952075Z         },
2026-06-09T03:00:38.4952161Z         "impl": {
2026-06-09T03:00:38.4952248Z           "complete": true,
2026-06-09T03:00:38.4952333Z           "evidence": [
2026-06-09T03:00:38.4952413Z             {
2026-06-09T03:00:38.4952548Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.4952634Z               "line": 154
2026-06-09T03:00:38.4952714Z             },
2026-06-09T03:00:38.4952795Z             {
2026-06-09T03:00:38.4952915Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4952996Z               "line": 29
2026-06-09T03:00:38.4953096Z             },
2026-06-09T03:00:38.4953178Z             {
2026-06-09T03:00:38.4953292Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4953377Z               "line": 117
2026-06-09T03:00:38.4953459Z             },
2026-06-09T03:00:38.4953540Z             {
2026-06-09T03:00:38.4953654Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4953745Z               "line": 161
2026-06-09T03:00:38.4953826Z             },
2026-06-09T03:00:38.4953906Z             {
2026-06-09T03:00:38.4954016Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4954104Z               "line": 191
2026-06-09T03:00:38.4954184Z             },
2026-06-09T03:00:38.4954264Z             {
2026-06-09T03:00:38.4954379Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4954461Z               "line": 223
2026-06-09T03:00:38.4954545Z             },
2026-06-09T03:00:38.4954625Z             {
2026-06-09T03:00:38.4954735Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4954830Z               "line": 3833
2026-06-09T03:00:38.4954914Z             }
2026-06-09T03:00:38.4954994Z           ]
2026-06-09T03:00:38.4955072Z         },
2026-06-09T03:00:38.4955153Z         "int": {
2026-06-09T03:00:38.4955243Z           "complete": false,
2026-06-09T03:00:38.4955329Z           "evidence": []
2026-06-09T03:00:38.4955411Z         },
2026-06-09T03:00:38.4955501Z         "unit": {
2026-06-09T03:00:38.4955586Z           "complete": true,
2026-06-09T03:00:38.4955672Z           "evidence": [
2026-06-09T03:00:38.4955749Z             {
2026-06-09T03:00:38.4955873Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.4955958Z               "line": 334
2026-06-09T03:00:38.4956040Z             },
2026-06-09T03:00:38.4956121Z             {
2026-06-09T03:00:38.4956230Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4956311Z               "line": 269
2026-06-09T03:00:38.4956482Z             },
2026-06-09T03:00:38.4956646Z             {
2026-06-09T03:00:38.4956760Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4956846Z               "line": 310
2026-06-09T03:00:38.4956927Z             },
2026-06-09T03:00:38.4957093Z             {
2026-06-09T03:00:38.4957206Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T03:00:38.4957293Z               "line": 330
2026-06-09T03:00:38.4957373Z             },
2026-06-09T03:00:38.4957453Z             {
2026-06-09T03:00:38.4957561Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4957648Z               "line": 5404
2026-06-09T03:00:38.4957729Z             }
2026-06-09T03:00:38.4957809Z           ]
2026-06-09T03:00:38.4957890Z         }
2026-06-09T03:00:38.4957978Z       }
2026-06-09T03:00:38.4958058Z     },
2026-06-09T03:00:38.4958138Z     {
2026-06-09T03:00:38.4958229Z       "id": "REQ-INSTALL-5",
2026-06-09T03:00:38.4958692Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-09T03:00:38.4958791Z       "requiredStages": [
2026-06-09T03:00:38.4958874Z         "impl",
2026-06-09T03:00:38.4958955Z         "int"
2026-06-09T03:00:38.4959035Z       ],
2026-06-09T03:00:38.4959121Z       "stages": {
2026-06-09T03:00:38.4959203Z         "doc": {
2026-06-09T03:00:38.4959289Z           "complete": false,
2026-06-09T03:00:38.4959373Z           "evidence": []
2026-06-09T03:00:38.4959450Z         },
2026-06-09T03:00:38.4959537Z         "impl": {
2026-06-09T03:00:38.4959623Z           "complete": true,
2026-06-09T03:00:38.4959707Z           "evidence": [
2026-06-09T03:00:38.4959787Z             {
2026-06-09T03:00:38.4959888Z               "path": "installer/install.ps1",
2026-06-09T03:00:38.4959972Z               "line": 5
2026-06-09T03:00:38.4960052Z             },
2026-06-09T03:00:38.4960133Z             {
2026-06-09T03:00:38.4960239Z               "path": "installer/install.sh",
2026-06-09T03:00:38.4960324Z               "line": 6
2026-06-09T03:00:38.4960405Z             }
2026-06-09T03:00:38.4960486Z           ]
2026-06-09T03:00:38.4960567Z         },
2026-06-09T03:00:38.4960648Z         "int": {
2026-06-09T03:00:38.4960739Z           "complete": true,
2026-06-09T03:00:38.4960820Z           "evidence": [
2026-06-09T03:00:38.4960906Z             {
2026-06-09T03:00:38.4961020Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-09T03:00:38.4961101Z               "line": 22
2026-06-09T03:00:38.4961179Z             }
2026-06-09T03:00:38.4961259Z           ]
2026-06-09T03:00:38.4961339Z         },
2026-06-09T03:00:38.4961416Z         "unit": {
2026-06-09T03:00:38.4961508Z           "complete": false,
2026-06-09T03:00:38.4961592Z           "evidence": []
2026-06-09T03:00:38.4961669Z         }
2026-06-09T03:00:38.4961746Z       }
2026-06-09T03:00:38.4961827Z     },
2026-06-09T03:00:38.4961907Z     {
2026-06-09T03:00:38.4962007Z       "id": "REQ-INSTALL-6",
2026-06-09T03:00:38.4963208Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-09T03:00:38.4963302Z       "requiredStages": [
2026-06-09T03:00:38.4963385Z         "impl",
2026-06-09T03:00:38.4963466Z         "unit"
2026-06-09T03:00:38.4963546Z       ],
2026-06-09T03:00:38.4963636Z       "stages": {
2026-06-09T03:00:38.4963724Z         "doc": {
2026-06-09T03:00:38.4963809Z           "complete": false,
2026-06-09T03:00:38.4963894Z           "evidence": []
2026-06-09T03:00:38.4963976Z         },
2026-06-09T03:00:38.4964057Z         "impl": {
2026-06-09T03:00:38.4964143Z           "complete": true,
2026-06-09T03:00:38.4964228Z           "evidence": [
2026-06-09T03:00:38.4964500Z             {
2026-06-09T03:00:38.4964620Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4964701Z               "line": 59
2026-06-09T03:00:38.4964786Z             },
2026-06-09T03:00:38.4964862Z             {
2026-06-09T03:00:38.4964978Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.4965064Z               "line": 467
2026-06-09T03:00:38.4965143Z             },
2026-06-09T03:00:38.4965223Z             {
2026-06-09T03:00:38.4965343Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4965427Z               "line": 191
2026-06-09T03:00:38.4965512Z             },
2026-06-09T03:00:38.4965588Z             {
2026-06-09T03:00:38.4965704Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4965789Z               "line": 276
2026-06-09T03:00:38.4965874Z             },
2026-06-09T03:00:38.4965956Z             {
2026-06-09T03:00:38.4966066Z               "path": "crates/spt/src/main.rs",
2026-06-09T03:00:38.4966165Z               "line": 40
2026-06-09T03:00:38.4966247Z             },
2026-06-09T03:00:38.4966323Z             {
2026-06-09T03:00:38.4966423Z               "path": "installer/install.sh",
2026-06-09T03:00:38.4966509Z               "line": 104
2026-06-09T03:00:38.4966591Z             }
2026-06-09T03:00:38.4966672Z           ]
2026-06-09T03:00:38.4966752Z         },
2026-06-09T03:00:38.4966833Z         "int": {
2026-06-09T03:00:38.4966920Z           "complete": false,
2026-06-09T03:00:38.4967091Z           "evidence": []
2026-06-09T03:00:38.4967177Z         },
2026-06-09T03:00:38.4967258Z         "unit": {
2026-06-09T03:00:38.4967353Z           "complete": true,
2026-06-09T03:00:38.4967439Z           "evidence": [
2026-06-09T03:00:38.4967521Z             {
2026-06-09T03:00:38.4967635Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T03:00:38.4967719Z               "line": 841
2026-06-09T03:00:38.4967800Z             }
2026-06-09T03:00:38.4967890Z           ]
2026-06-09T03:00:38.4967971Z         }
2026-06-09T03:00:38.4968050Z       }
2026-06-09T03:00:38.4968131Z     },
2026-06-09T03:00:38.4968208Z     {
2026-06-09T03:00:38.4968299Z       "id": "REQ-INSTALL-7",
2026-06-09T03:00:38.4969400Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-09T03:00:38.4969492Z       "requiredStages": [
2026-06-09T03:00:38.4969576Z         "impl"
2026-06-09T03:00:38.4969653Z       ],
2026-06-09T03:00:38.4969738Z       "stages": {
2026-06-09T03:00:38.4969821Z         "doc": {
2026-06-09T03:00:38.4969910Z           "complete": false,
2026-06-09T03:00:38.4969991Z           "evidence": []
2026-06-09T03:00:38.4970073Z         },
2026-06-09T03:00:38.4970154Z         "impl": {
2026-06-09T03:00:38.4970239Z           "complete": true,
2026-06-09T03:00:38.4970329Z           "evidence": [
2026-06-09T03:00:38.4970405Z             {
2026-06-09T03:00:38.4970509Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.4970593Z               "line": 2497
2026-06-09T03:00:38.4970674Z             },
2026-06-09T03:00:38.4970755Z             {
2026-06-09T03:00:38.4970875Z               "path": "installer/install.ps1",
2026-06-09T03:00:38.4970970Z               "line": 157
2026-06-09T03:00:38.4971047Z             }
2026-06-09T03:00:38.4971128Z           ]
2026-06-09T03:00:38.4971209Z         },
2026-06-09T03:00:38.4971289Z         "int": {
2026-06-09T03:00:38.4971376Z           "complete": false,
2026-06-09T03:00:38.4971457Z           "evidence": []
2026-06-09T03:00:38.4971547Z         },
2026-06-09T03:00:38.4971628Z         "unit": {
2026-06-09T03:00:38.4971715Z           "complete": false,
2026-06-09T03:00:38.4971799Z           "evidence": []
2026-06-09T03:00:38.4972063Z         }
2026-06-09T03:00:38.4972148Z       }
2026-06-09T03:00:38.4972229Z     },
2026-06-09T03:00:38.4972311Z     {
2026-06-09T03:00:38.4972397Z       "id": "REQ-INSTALL-8",
2026-06-09T03:00:38.4973363Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-09T03:00:38.4973458Z       "requiredStages": [
2026-06-09T03:00:38.4973539Z         "impl"
2026-06-09T03:00:38.4973620Z       ],
2026-06-09T03:00:38.4973702Z       "stages": {
2026-06-09T03:00:38.4973782Z         "doc": {
2026-06-09T03:00:38.4973868Z           "complete": false,
2026-06-09T03:00:38.4973955Z           "evidence": []
2026-06-09T03:00:38.4974035Z         },
2026-06-09T03:00:38.4974130Z         "impl": {
2026-06-09T03:00:38.4974221Z           "complete": true,
2026-06-09T03:00:38.4974303Z           "evidence": [
2026-06-09T03:00:38.4974383Z             {
2026-06-09T03:00:38.4974483Z               "path": "installer/install.ps1",
2026-06-09T03:00:38.4974569Z               "line": 184
2026-06-09T03:00:38.4974651Z             },
2026-06-09T03:00:38.4974731Z             {
2026-06-09T03:00:38.4974831Z               "path": "installer/install.sh",
2026-06-09T03:00:38.4974914Z               "line": 121
2026-06-09T03:00:38.4974994Z             }
2026-06-09T03:00:38.4975069Z           ]
2026-06-09T03:00:38.4975151Z         },
2026-06-09T03:00:38.4975238Z         "int": {
2026-06-09T03:00:38.4975323Z           "complete": false,
2026-06-09T03:00:38.4975408Z           "evidence": []
2026-06-09T03:00:38.4975495Z         },
2026-06-09T03:00:38.4975577Z         "unit": {
2026-06-09T03:00:38.4975665Z           "complete": false,
2026-06-09T03:00:38.4975760Z           "evidence": []
2026-06-09T03:00:38.4975846Z         }
2026-06-09T03:00:38.4975927Z       }
2026-06-09T03:00:38.4976006Z     },
2026-06-09T03:00:38.4976086Z     {
2026-06-09T03:00:38.4976182Z       "id": "REQ-MANIFEST-1",
2026-06-09T03:00:38.4976354Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-09T03:00:38.4976444Z       "requiredStages": [
2026-06-09T03:00:38.4976526Z         "doc",
2026-06-09T03:00:38.4976607Z         "impl",
2026-06-09T03:00:38.4976687Z         "unit"
2026-06-09T03:00:38.4976768Z       ],
2026-06-09T03:00:38.4976850Z       "stages": {
2026-06-09T03:00:38.4976931Z         "doc": {
2026-06-09T03:00:38.4977107Z           "complete": true,
2026-06-09T03:00:38.4977189Z           "evidence": [
2026-06-09T03:00:38.4977270Z             {
2026-06-09T03:00:38.4977369Z               "path": "docs/MANIFEST.md",
2026-06-09T03:00:38.4977451Z               "line": 19
2026-06-09T03:00:38.4977532Z             }
2026-06-09T03:00:38.4977612Z           ]
2026-06-09T03:00:38.4977708Z         },
2026-06-09T03:00:38.4977791Z         "impl": {
2026-06-09T03:00:38.4977880Z           "complete": true,
2026-06-09T03:00:38.4977966Z           "evidence": [
2026-06-09T03:00:38.4978047Z             {
2026-06-09T03:00:38.4978167Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4978246Z               "line": 18
2026-06-09T03:00:38.4978326Z             }
2026-06-09T03:00:38.4978403Z           ]
2026-06-09T03:00:38.4978488Z         },
2026-06-09T03:00:38.4978578Z         "int": {
2026-06-09T03:00:38.4978677Z           "complete": false,
2026-06-09T03:00:38.4978763Z           "evidence": []
2026-06-09T03:00:38.4978840Z         },
2026-06-09T03:00:38.4978925Z         "unit": {
2026-06-09T03:00:38.4979006Z           "complete": true,
2026-06-09T03:00:38.4979093Z           "evidence": [
2026-06-09T03:00:38.4979188Z             {
2026-06-09T03:00:38.4979306Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4979493Z               "line": 746
2026-06-09T03:00:38.4979660Z             },
2026-06-09T03:00:38.4979741Z             {
2026-06-09T03:00:38.4979851Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4979941Z               "line": 860
2026-06-09T03:00:38.4980023Z             },
2026-06-09T03:00:38.4980104Z             {
2026-06-09T03:00:38.4980222Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4980308Z               "line": 872
2026-06-09T03:00:38.4980390Z             },
2026-06-09T03:00:38.4980470Z             {
2026-06-09T03:00:38.4980580Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4980667Z               "line": 883
2026-06-09T03:00:38.4980743Z             },
2026-06-09T03:00:38.4980827Z             {
2026-06-09T03:00:38.4980940Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4981022Z               "line": 900
2026-06-09T03:00:38.4981107Z             },
2026-06-09T03:00:38.4981186Z             {
2026-06-09T03:00:38.4981320Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4981408Z               "line": 914
2026-06-09T03:00:38.4981487Z             },
2026-06-09T03:00:38.4981568Z             {
2026-06-09T03:00:38.4981688Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4981774Z               "line": 929
2026-06-09T03:00:38.4981854Z             },
2026-06-09T03:00:38.4981936Z             {
2026-06-09T03:00:38.4982045Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4982131Z               "line": 944
2026-06-09T03:00:38.4982212Z             },
2026-06-09T03:00:38.4982289Z             {
2026-06-09T03:00:38.4982408Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4982498Z               "line": 959
2026-06-09T03:00:38.4982575Z             },
2026-06-09T03:00:38.4982652Z             {
2026-06-09T03:00:38.4982770Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.4982866Z               "line": 970
2026-06-09T03:00:38.4982952Z             }
2026-06-09T03:00:38.4983036Z           ]
2026-06-09T03:00:38.4983113Z         }
2026-06-09T03:00:38.4983195Z       }
2026-06-09T03:00:38.4983272Z     },
2026-06-09T03:00:38.4983351Z     {
2026-06-09T03:00:38.4983442Z       "id": "REQ-MESH-1",
2026-06-09T03:00:38.4985440Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-09T03:00:38.4985540Z       "requiredStages": [
2026-06-09T03:00:38.4985620Z         "impl",
2026-06-09T03:00:38.4985706Z         "unit",
2026-06-09T03:00:38.4985793Z         "int"
2026-06-09T03:00:38.4985873Z       ],
2026-06-09T03:00:38.4985958Z       "stages": {
2026-06-09T03:00:38.4986040Z         "doc": {
2026-06-09T03:00:38.4986132Z           "complete": false,
2026-06-09T03:00:38.4986216Z           "evidence": []
2026-06-09T03:00:38.4986297Z         },
2026-06-09T03:00:38.4986382Z         "impl": {
2026-06-09T03:00:38.4986468Z           "complete": true,
2026-06-09T03:00:38.4986557Z           "evidence": [
2026-06-09T03:00:38.4986637Z             {
2026-06-09T03:00:38.4986752Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.4986838Z               "line": 680
2026-06-09T03:00:38.4986918Z             },
2026-06-09T03:00:38.4987087Z             {
2026-06-09T03:00:38.4987319Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.4987491Z               "line": 38
2026-06-09T03:00:38.4987567Z             },
2026-06-09T03:00:38.4987648Z             {
2026-06-09T03:00:38.4987768Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.4987853Z               "line": 161
2026-06-09T03:00:38.4987934Z             },
2026-06-09T03:00:38.4988011Z             {
2026-06-09T03:00:38.4988130Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.4988211Z               "line": 206
2026-06-09T03:00:38.4988292Z             },
2026-06-09T03:00:38.4988374Z             {
2026-06-09T03:00:38.4988487Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.4988573Z               "line": 57
2026-06-09T03:00:38.4988651Z             },
2026-06-09T03:00:38.4988736Z             {
2026-06-09T03:00:38.4988858Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4988944Z               "line": 24
2026-06-09T03:00:38.4989034Z             },
2026-06-09T03:00:38.4989118Z             {
2026-06-09T03:00:38.4989247Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4989328Z               "line": 142
2026-06-09T03:00:38.4989409Z             },
2026-06-09T03:00:38.4989485Z             {
2026-06-09T03:00:38.4989614Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4989701Z               "line": 162
2026-06-09T03:00:38.4989776Z             }
2026-06-09T03:00:38.4989861Z           ]
2026-06-09T03:00:38.4989939Z         },
2026-06-09T03:00:38.4990020Z         "int": {
2026-06-09T03:00:38.4990105Z           "complete": true,
2026-06-09T03:00:38.4990196Z           "evidence": [
2026-06-09T03:00:38.4990273Z             {
2026-06-09T03:00:38.4990396Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T03:00:38.4992452Z               "line": 67
2026-06-09T03:00:38.4992553Z             },
2026-06-09T03:00:38.4992634Z             {
2026-06-09T03:00:38.4992796Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T03:00:38.4992887Z               "line": 93
2026-06-09T03:00:38.4992968Z             },
2026-06-09T03:00:38.4993048Z             {
2026-06-09T03:00:38.4993179Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T03:00:38.4993268Z               "line": 117
2026-06-09T03:00:38.4993349Z             },
2026-06-09T03:00:38.4993426Z             {
2026-06-09T03:00:38.4993550Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T03:00:38.4993635Z               "line": 134
2026-06-09T03:00:38.4993716Z             }
2026-06-09T03:00:38.4993798Z           ]
2026-06-09T03:00:38.4993879Z         },
2026-06-09T03:00:38.4993963Z         "unit": {
2026-06-09T03:00:38.4994050Z           "complete": true,
2026-06-09T03:00:38.4994137Z           "evidence": [
2026-06-09T03:00:38.4994217Z             {
2026-06-09T03:00:38.4994344Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.4994440Z               "line": 427
2026-06-09T03:00:38.4994521Z             },
2026-06-09T03:00:38.4994602Z             {
2026-06-09T03:00:38.4994731Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4994817Z               "line": 376
2026-06-09T03:00:38.4994898Z             },
2026-06-09T03:00:38.4994978Z             {
2026-06-09T03:00:38.4995104Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4995185Z               "line": 412
2026-06-09T03:00:38.4995264Z             },
2026-06-09T03:00:38.4995341Z             {
2026-06-09T03:00:38.4995461Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4995546Z               "line": 427
2026-06-09T03:00:38.4995627Z             },
2026-06-09T03:00:38.4995704Z             {
2026-06-09T03:00:38.4995823Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4995908Z               "line": 438
2026-06-09T03:00:38.4995985Z             },
2026-06-09T03:00:38.4996218Z             {
2026-06-09T03:00:38.4996339Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4996424Z               "line": 449
2026-06-09T03:00:38.4996504Z             },
2026-06-09T03:00:38.4996581Z             {
2026-06-09T03:00:38.4996707Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4996790Z               "line": 460
2026-06-09T03:00:38.4996871Z             },
2026-06-09T03:00:38.4997042Z             {
2026-06-09T03:00:38.4997164Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4997249Z               "line": 496
2026-06-09T03:00:38.4997327Z             },
2026-06-09T03:00:38.4997408Z             {
2026-06-09T03:00:38.4997531Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4997617Z               "line": 519
2026-06-09T03:00:38.4997694Z             },
2026-06-09T03:00:38.4997774Z             {
2026-06-09T03:00:38.4997898Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.4997990Z               "line": 546
2026-06-09T03:00:38.4998070Z             }
2026-06-09T03:00:38.4998151Z           ]
2026-06-09T03:00:38.4998228Z         }
2026-06-09T03:00:38.4998309Z       }
2026-06-09T03:00:38.4998395Z     },
2026-06-09T03:00:38.4998475Z     {
2026-06-09T03:00:38.4998562Z       "id": "REQ-MESH-2",
2026-06-09T03:00:38.5001056Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-09T03:00:38.5001158Z       "requiredStages": [
2026-06-09T03:00:38.5001242Z         "impl",
2026-06-09T03:00:38.5001319Z         "unit",
2026-06-09T03:00:38.5001404Z         "int"
2026-06-09T03:00:38.5001482Z       ],
2026-06-09T03:00:38.5001567Z       "stages": {
2026-06-09T03:00:38.5001648Z         "doc": {
2026-06-09T03:00:38.5001739Z           "complete": false,
2026-06-09T03:00:38.5001825Z           "evidence": []
2026-06-09T03:00:38.5001905Z         },
2026-06-09T03:00:38.5001985Z         "impl": {
2026-06-09T03:00:38.5002066Z           "complete": true,
2026-06-09T03:00:38.5002152Z           "evidence": [
2026-06-09T03:00:38.5002227Z             {
2026-06-09T03:00:38.5002350Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.5002445Z               "line": 569
2026-06-09T03:00:38.5002523Z             },
2026-06-09T03:00:38.5002603Z             {
2026-06-09T03:00:38.5002732Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5002837Z               "line": 118
2026-06-09T03:00:38.5002917Z             },
2026-06-09T03:00:38.5002993Z             {
2026-06-09T03:00:38.5003104Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5003189Z               "line": 347
2026-06-09T03:00:38.5003275Z             },
2026-06-09T03:00:38.5003366Z             {
2026-06-09T03:00:38.5003480Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5003561Z               "line": 389
2026-06-09T03:00:38.5003647Z             },
2026-06-09T03:00:38.5003729Z             {
2026-06-09T03:00:38.5003837Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5003923Z               "line": 403
2026-06-09T03:00:38.5004190Z             },
2026-06-09T03:00:38.5004276Z             {
2026-06-09T03:00:38.5004387Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5004472Z               "line": 492
2026-06-09T03:00:38.5004553Z             },
2026-06-09T03:00:38.5004630Z             {
2026-06-09T03:00:38.5004744Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5004828Z               "line": 507
2026-06-09T03:00:38.5004914Z             },
2026-06-09T03:00:38.5004995Z             {
2026-06-09T03:00:38.5005111Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5005195Z               "line": 534
2026-06-09T03:00:38.5005277Z             },
2026-06-09T03:00:38.5005359Z             {
2026-06-09T03:00:38.5005482Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5005567Z               "line": 207
2026-06-09T03:00:38.5005650Z             },
2026-06-09T03:00:38.5005730Z             {
2026-06-09T03:00:38.5005858Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5005945Z               "line": 755
2026-06-09T03:00:38.5006030Z             },
2026-06-09T03:00:38.5006111Z             {
2026-06-09T03:00:38.5006226Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5006312Z               "line": 816
2026-06-09T03:00:38.5006392Z             },
2026-06-09T03:00:38.5006473Z             {
2026-06-09T03:00:38.5006589Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5006679Z               "line": 869
2026-06-09T03:00:38.5006760Z             },
2026-06-09T03:00:38.5006841Z             {
2026-06-09T03:00:38.5007055Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5007141Z               "line": 891
2026-06-09T03:00:38.5007223Z             },
2026-06-09T03:00:38.5007304Z             {
2026-06-09T03:00:38.5007412Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.5007497Z               "line": 112
2026-06-09T03:00:38.5007593Z             },
2026-06-09T03:00:38.5007677Z             {
2026-06-09T03:00:38.5007786Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5007882Z               "line": 44
2026-06-09T03:00:38.5007958Z             },
2026-06-09T03:00:38.5008043Z             {
2026-06-09T03:00:38.5008149Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5008235Z               "line": 184
2026-06-09T03:00:38.5008316Z             },
2026-06-09T03:00:38.5008396Z             {
2026-06-09T03:00:38.5008502Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5008587Z               "line": 211
2026-06-09T03:00:38.5008668Z             },
2026-06-09T03:00:38.5008749Z             {
2026-06-09T03:00:38.5008860Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5008945Z               "line": 251
2026-06-09T03:00:38.5009025Z             },
2026-06-09T03:00:38.5009107Z             {
2026-06-09T03:00:38.5009226Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5009312Z               "line": 275
2026-06-09T03:00:38.5009393Z             },
2026-06-09T03:00:38.5009475Z             {
2026-06-09T03:00:38.5009583Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5009669Z               "line": 289
2026-06-09T03:00:38.5009752Z             },
2026-06-09T03:00:38.5009838Z             {
2026-06-09T03:00:38.5009945Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5010035Z               "line": 300
2026-06-09T03:00:38.5010117Z             },
2026-06-09T03:00:38.5010197Z             {
2026-06-09T03:00:38.5010310Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5010396Z               "line": 313
2026-06-09T03:00:38.5010478Z             }
2026-06-09T03:00:38.5010558Z           ]
2026-06-09T03:00:38.5010644Z         },
2026-06-09T03:00:38.5010725Z         "int": {
2026-06-09T03:00:38.5010816Z           "complete": true,
2026-06-09T03:00:38.5011107Z           "evidence": [
2026-06-09T03:00:38.5011192Z             {
2026-06-09T03:00:38.5011325Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-09T03:00:38.5011408Z               "line": 116
2026-06-09T03:00:38.5011493Z             },
2026-06-09T03:00:38.5011569Z             {
2026-06-09T03:00:38.5011694Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-09T03:00:38.5011774Z               "line": 181
2026-06-09T03:00:38.5011859Z             }
2026-06-09T03:00:38.5011936Z           ]
2026-06-09T03:00:38.5012018Z         },
2026-06-09T03:00:38.5012103Z         "unit": {
2026-06-09T03:00:38.5012193Z           "complete": true,
2026-06-09T03:00:38.5012279Z           "evidence": [
2026-06-09T03:00:38.5012362Z             {
2026-06-09T03:00:38.5012479Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5012564Z               "line": 999
2026-06-09T03:00:38.5012650Z             },
2026-06-09T03:00:38.5012735Z             {
2026-06-09T03:00:38.5012858Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5012948Z               "line": 1016
2026-06-09T03:00:38.5013025Z             },
2026-06-09T03:00:38.5013111Z             {
2026-06-09T03:00:38.5013224Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5013316Z               "line": 1024
2026-06-09T03:00:38.5013397Z             },
2026-06-09T03:00:38.5013477Z             {
2026-06-09T03:00:38.5013597Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5013683Z               "line": 1048
2026-06-09T03:00:38.5013764Z             },
2026-06-09T03:00:38.5013844Z             {
2026-06-09T03:00:38.5013969Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5014060Z               "line": 1499
2026-06-09T03:00:38.5014140Z             },
2026-06-09T03:00:38.5014222Z             {
2026-06-09T03:00:38.5014332Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5014436Z               "line": 347
2026-06-09T03:00:38.5014517Z             },
2026-06-09T03:00:38.5014599Z             {
2026-06-09T03:00:38.5014722Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5014812Z               "line": 370
2026-06-09T03:00:38.5014895Z             },
2026-06-09T03:00:38.5014980Z             {
2026-06-09T03:00:38.5015093Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5015180Z               "line": 407
2026-06-09T03:00:38.5015262Z             },
2026-06-09T03:00:38.5015346Z             {
2026-06-09T03:00:38.5015450Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5015542Z               "line": 431
2026-06-09T03:00:38.5015618Z             },
2026-06-09T03:00:38.5015704Z             {
2026-06-09T03:00:38.5015808Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5015900Z               "line": 483
2026-06-09T03:00:38.5015981Z             },
2026-06-09T03:00:38.5016079Z             {
2026-06-09T03:00:38.5016190Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5016271Z               "line": 499
2026-06-09T03:00:38.5016357Z             },
2026-06-09T03:00:38.5016442Z             {
2026-06-09T03:00:38.5016548Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5016633Z               "line": 514
2026-06-09T03:00:38.5016718Z             },
2026-06-09T03:00:38.5016800Z             {
2026-06-09T03:00:38.5016910Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5017100Z               "line": 531
2026-06-09T03:00:38.5017183Z             }
2026-06-09T03:00:38.5017262Z           ]
2026-06-09T03:00:38.5017348Z         }
2026-06-09T03:00:38.5017425Z       }
2026-06-09T03:00:38.5017512Z     },
2026-06-09T03:00:38.5017591Z     {
2026-06-09T03:00:38.5017682Z       "id": "REQ-MESH-3",
2026-06-09T03:00:38.5019462Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-09T03:00:38.5019643Z       "requiredStages": [
2026-06-09T03:00:38.5019730Z         "impl",
2026-06-09T03:00:38.5019810Z         "unit",
2026-06-09T03:00:38.5019891Z         "int"
2026-06-09T03:00:38.5019972Z       ],
2026-06-09T03:00:38.5020059Z       "stages": {
2026-06-09T03:00:38.5020139Z         "doc": {
2026-06-09T03:00:38.5020229Z           "complete": false,
2026-06-09T03:00:38.5020317Z           "evidence": []
2026-06-09T03:00:38.5020398Z         },
2026-06-09T03:00:38.5020481Z         "impl": {
2026-06-09T03:00:38.5020590Z           "complete": true,
2026-06-09T03:00:38.5020672Z           "evidence": [
2026-06-09T03:00:38.5020757Z             {
2026-06-09T03:00:38.5020875Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5020965Z               "line": 410
2026-06-09T03:00:38.5021042Z             },
2026-06-09T03:00:38.5021128Z             {
2026-06-09T03:00:38.5021241Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5021324Z               "line": 603
2026-06-09T03:00:38.5021414Z             }
2026-06-09T03:00:38.5021494Z           ]
2026-06-09T03:00:38.5021576Z         },
2026-06-09T03:00:38.5021658Z         "int": {
2026-06-09T03:00:38.5021748Z           "complete": true,
2026-06-09T03:00:38.5021833Z           "evidence": [
2026-06-09T03:00:38.5021915Z             {
2026-06-09T03:00:38.5022029Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-09T03:00:38.5022114Z               "line": 373
2026-06-09T03:00:38.5022195Z             },
2026-06-09T03:00:38.5022288Z             {
2026-06-09T03:00:38.5022400Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-09T03:00:38.5022487Z               "line": 436
2026-06-09T03:00:38.5022563Z             }
2026-06-09T03:00:38.5022649Z           ]
2026-06-09T03:00:38.5022729Z         },
2026-06-09T03:00:38.5022816Z         "unit": {
2026-06-09T03:00:38.5022907Z           "complete": true,
2026-06-09T03:00:38.5022992Z           "evidence": [
2026-06-09T03:00:38.5023082Z             {
2026-06-09T03:00:38.5023196Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5023286Z               "line": 881
2026-06-09T03:00:38.5023365Z             }
2026-06-09T03:00:38.5023446Z           ]
2026-06-09T03:00:38.5023532Z         }
2026-06-09T03:00:38.5023619Z       }
2026-06-09T03:00:38.5023699Z     },
2026-06-09T03:00:38.5023775Z     {
2026-06-09T03:00:38.5023900Z       "id": "REQ-MESH-4",
2026-06-09T03:00:38.5026077Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-09T03:00:38.5026174Z       "requiredStages": [
2026-06-09T03:00:38.5026259Z         "impl",
2026-06-09T03:00:38.5026339Z         "unit",
2026-06-09T03:00:38.5026426Z         "int"
2026-06-09T03:00:38.5026507Z       ],
2026-06-09T03:00:38.5026592Z       "stages": {
2026-06-09T03:00:38.5026678Z         "doc": {
2026-06-09T03:00:38.5026921Z           "complete": false,
2026-06-09T03:00:38.5027099Z           "evidence": []
2026-06-09T03:00:38.5027184Z         },
2026-06-09T03:00:38.5027269Z         "impl": {
2026-06-09T03:00:38.5027365Z           "complete": true,
2026-06-09T03:00:38.5027452Z           "evidence": [
2026-06-09T03:00:38.5027531Z             {
2026-06-09T03:00:38.5027651Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5027738Z               "line": 187
2026-06-09T03:00:38.5027823Z             },
2026-06-09T03:00:38.5027904Z             {
2026-06-09T03:00:38.5028029Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5028114Z               "line": 68
2026-06-09T03:00:38.5028198Z             },
2026-06-09T03:00:38.5028281Z             {
2026-06-09T03:00:38.5028401Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5028485Z               "line": 111
2026-06-09T03:00:38.5028570Z             },
2026-06-09T03:00:38.5028651Z             {
2026-06-09T03:00:38.5028779Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5028868Z               "line": 462
2026-06-09T03:00:38.5028949Z             },
2026-06-09T03:00:38.5029036Z             {
2026-06-09T03:00:38.5029150Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5029230Z               "line": 711
2026-06-09T03:00:38.5029312Z             },
2026-06-09T03:00:38.5029398Z             {
2026-06-09T03:00:38.5029521Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5029613Z               "line": 725
2026-06-09T03:00:38.5029699Z             },
2026-06-09T03:00:38.5029779Z             {
2026-06-09T03:00:38.5029893Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.5029985Z               "line": 122
2026-06-09T03:00:38.5030065Z             },
2026-06-09T03:00:38.5030150Z             {
2026-06-09T03:00:38.5030266Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T03:00:38.5030380Z               "line": 26
2026-06-09T03:00:38.5030456Z             },
2026-06-09T03:00:38.5030542Z             {
2026-06-09T03:00:38.5030657Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T03:00:38.5030742Z               "line": 97
2026-06-09T03:00:38.5030828Z             },
2026-06-09T03:00:38.5030905Z             {
2026-06-09T03:00:38.5031019Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T03:00:38.5031109Z               "line": 119
2026-06-09T03:00:38.5031189Z             },
2026-06-09T03:00:38.5031275Z             {
2026-06-09T03:00:38.5031387Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.5031473Z               "line": 82
2026-06-09T03:00:38.5031554Z             },
2026-06-09T03:00:38.5031636Z             {
2026-06-09T03:00:38.5031749Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.5031836Z               "line": 111
2026-06-09T03:00:38.5031917Z             },
2026-06-09T03:00:38.5032017Z             {
2026-06-09T03:00:38.5032131Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.5032218Z               "line": 232
2026-06-09T03:00:38.5032308Z             },
2026-06-09T03:00:38.5032388Z             {
2026-06-09T03:00:38.5032499Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.5032589Z               "line": 245
2026-06-09T03:00:38.5032675Z             },
2026-06-09T03:00:38.5032756Z             {
2026-06-09T03:00:38.5032862Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5032951Z               "line": 3229
2026-06-09T03:00:38.5033032Z             }
2026-06-09T03:00:38.5033119Z           ]
2026-06-09T03:00:38.5033200Z         },
2026-06-09T03:00:38.5033285Z         "int": {
2026-06-09T03:00:38.5033376Z           "complete": true,
2026-06-09T03:00:38.5033463Z           "evidence": [
2026-06-09T03:00:38.5033548Z             {
2026-06-09T03:00:38.5033675Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-09T03:00:38.5033959Z               "line": 98
2026-06-09T03:00:38.5034044Z             },
2026-06-09T03:00:38.5034126Z             {
2026-06-09T03:00:38.5034250Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-09T03:00:38.5034340Z               "line": 140
2026-06-09T03:00:38.5034412Z             }
2026-06-09T03:00:38.5034493Z           ]
2026-06-09T03:00:38.5034574Z         },
2026-06-09T03:00:38.5034655Z         "unit": {
2026-06-09T03:00:38.5034741Z           "complete": true,
2026-06-09T03:00:38.5034827Z           "evidence": [
2026-06-09T03:00:38.5034926Z             {
2026-06-09T03:00:38.5035066Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5035156Z               "line": 844
2026-06-09T03:00:38.5035237Z             },
2026-06-09T03:00:38.5035317Z             {
2026-06-09T03:00:38.5035442Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5035532Z               "line": 1079
2026-06-09T03:00:38.5035613Z             },
2026-06-09T03:00:38.5035710Z             {
2026-06-09T03:00:38.5035832Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5035919Z               "line": 1109
2026-06-09T03:00:38.5036005Z             },
2026-06-09T03:00:38.5036086Z             {
2026-06-09T03:00:38.5036204Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T03:00:38.5036291Z               "line": 1129
2026-06-09T03:00:38.5036378Z             },
2026-06-09T03:00:38.5036462Z             {
2026-06-09T03:00:38.5036589Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T03:00:38.5036681Z               "line": 602
2026-06-09T03:00:38.5036762Z             },
2026-06-09T03:00:38.5036847Z             {
2026-06-09T03:00:38.5037058Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T03:00:38.5037148Z               "line": 148
2026-06-09T03:00:38.5037233Z             },
2026-06-09T03:00:38.5037316Z             {
2026-06-09T03:00:38.5037439Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T03:00:38.5037529Z               "line": 169
2026-06-09T03:00:38.5037616Z             },
2026-06-09T03:00:38.5037697Z             {
2026-06-09T03:00:38.5037815Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T03:00:38.5037906Z               "line": 181
2026-06-09T03:00:38.5037988Z             },
2026-06-09T03:00:38.5038073Z             {
2026-06-09T03:00:38.5038182Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T03:00:38.5038274Z               "line": 202
2026-06-09T03:00:38.5038359Z             },
2026-06-09T03:00:38.5038445Z             {
2026-06-09T03:00:38.5038560Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.5038646Z               "line": 375
2026-06-09T03:00:38.5038731Z             },
2026-06-09T03:00:38.5038812Z             {
2026-06-09T03:00:38.5038923Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.5039013Z               "line": 407
2026-06-09T03:00:38.5039102Z             },
2026-06-09T03:00:38.5039187Z             {
2026-06-09T03:00:38.5039292Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5039386Z               "line": 6668
2026-06-09T03:00:38.5039466Z             }
2026-06-09T03:00:38.5039553Z           ]
2026-06-09T03:00:38.5039634Z         }
2026-06-09T03:00:38.5039719Z       }
2026-06-09T03:00:38.5039800Z     },
2026-06-09T03:00:38.5039882Z     {
2026-06-09T03:00:38.5039972Z       "id": "REQ-MESH-5",
2026-06-09T03:00:38.5041369Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-09T03:00:38.5041673Z       "requiredStages": [
2026-06-09T03:00:38.5041764Z         "impl",
2026-06-09T03:00:38.5041845Z         "unit"
2026-06-09T03:00:38.5041929Z       ],
2026-06-09T03:00:38.5042014Z       "stages": {
2026-06-09T03:00:38.5042100Z         "doc": {
2026-06-09T03:00:38.5042196Z           "complete": false,
2026-06-09T03:00:38.5042285Z           "evidence": []
2026-06-09T03:00:38.5042367Z         },
2026-06-09T03:00:38.5042454Z         "impl": {
2026-06-09T03:00:38.5042544Z           "complete": true,
2026-06-09T03:00:38.5042628Z           "evidence": [
2026-06-09T03:00:38.5042720Z             {
2026-06-09T03:00:38.5042844Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5042925Z               "line": 61
2026-06-09T03:00:38.5043010Z             },
2026-06-09T03:00:38.5043093Z             {
2026-06-09T03:00:38.5043212Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5043302Z               "line": 109
2026-06-09T03:00:38.5043383Z             },
2026-06-09T03:00:38.5043483Z             {
2026-06-09T03:00:38.5043597Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5043689Z               "line": 104
2026-06-09T03:00:38.5043770Z             },
2026-06-09T03:00:38.5043854Z             {
2026-06-09T03:00:38.5043969Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5044057Z               "line": 105
2026-06-09T03:00:38.5044136Z             },
2026-06-09T03:00:38.5044216Z             {
2026-06-09T03:00:38.5044345Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5044430Z               "line": 85
2026-06-09T03:00:38.5044509Z             },
2026-06-09T03:00:38.5044590Z             {
2026-06-09T03:00:38.5044715Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5044801Z               "line": 234
2026-06-09T03:00:38.5044886Z             },
2026-06-09T03:00:38.5044967Z             {
2026-06-09T03:00:38.5045092Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5045186Z               "line": 298
2026-06-09T03:00:38.5045268Z             },
2026-06-09T03:00:38.5045349Z             {
2026-06-09T03:00:38.5045472Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5045558Z               "line": 687
2026-06-09T03:00:38.5045636Z             },
2026-06-09T03:00:38.5045720Z             {
2026-06-09T03:00:38.5045830Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.5045921Z               "line": 101
2026-06-09T03:00:38.5046002Z             },
2026-06-09T03:00:38.5046092Z             {
2026-06-09T03:00:38.5046202Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5046294Z               "line": 193
2026-06-09T03:00:38.5046374Z             }
2026-06-09T03:00:38.5046455Z           ]
2026-06-09T03:00:38.5046536Z         },
2026-06-09T03:00:38.5046623Z         "int": {
2026-06-09T03:00:38.5046717Z           "complete": false,
2026-06-09T03:00:38.5046813Z           "evidence": []
2026-06-09T03:00:38.5046899Z         },
2026-06-09T03:00:38.5047064Z         "unit": {
2026-06-09T03:00:38.5047159Z           "complete": true,
2026-06-09T03:00:38.5047251Z           "evidence": [
2026-06-09T03:00:38.5047327Z             {
2026-06-09T03:00:38.5047455Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5047541Z               "line": 927
2026-06-09T03:00:38.5047627Z             },
2026-06-09T03:00:38.5047708Z             {
2026-06-09T03:00:38.5047822Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T03:00:38.5047908Z               "line": 462
2026-06-09T03:00:38.5047990Z             }
2026-06-09T03:00:38.5048075Z           ]
2026-06-09T03:00:38.5048156Z         }
2026-06-09T03:00:38.5048243Z       }
2026-06-09T03:00:38.5048318Z     },
2026-06-09T03:00:38.5048404Z     {
2026-06-09T03:00:38.5048495Z       "id": "REQ-MESH-6",
2026-06-09T03:00:38.5049796Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-09T03:00:38.5049979Z       "requiredStages": [
2026-06-09T03:00:38.5050064Z         "impl",
2026-06-09T03:00:38.5050147Z         "unit"
2026-06-09T03:00:38.5050228Z       ],
2026-06-09T03:00:38.5050312Z       "stages": {
2026-06-09T03:00:38.5050394Z         "doc": {
2026-06-09T03:00:38.5050485Z           "complete": false,
2026-06-09T03:00:38.5050570Z           "evidence": []
2026-06-09T03:00:38.5050651Z         },
2026-06-09T03:00:38.5050738Z         "impl": {
2026-06-09T03:00:38.5050828Z           "complete": true,
2026-06-09T03:00:38.5050914Z           "evidence": [
2026-06-09T03:00:38.5050999Z             {
2026-06-09T03:00:38.5051110Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5051210Z               "line": 2758
2026-06-09T03:00:38.5051290Z             }
2026-06-09T03:00:38.5051372Z           ]
2026-06-09T03:00:38.5051453Z         },
2026-06-09T03:00:38.5051538Z         "int": {
2026-06-09T03:00:38.5051629Z           "complete": false,
2026-06-09T03:00:38.5051716Z           "evidence": []
2026-06-09T03:00:38.5051796Z         },
2026-06-09T03:00:38.5051877Z         "unit": {
2026-06-09T03:00:38.5051968Z           "complete": true,
2026-06-09T03:00:38.5052054Z           "evidence": [
2026-06-09T03:00:38.5052134Z             {
2026-06-09T03:00:38.5052238Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5052319Z               "line": 7106
2026-06-09T03:00:38.5052405Z             },
2026-06-09T03:00:38.5052484Z             {
2026-06-09T03:00:38.5052584Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5052670Z               "line": 7133
2026-06-09T03:00:38.5052746Z             },
2026-06-09T03:00:38.5052841Z             {
2026-06-09T03:00:38.5052941Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5053028Z               "line": 7157
2026-06-09T03:00:38.5053104Z             }
2026-06-09T03:00:38.5053189Z           ]
2026-06-09T03:00:38.5053275Z         }
2026-06-09T03:00:38.5053353Z       }
2026-06-09T03:00:38.5053433Z     },
2026-06-09T03:00:38.5053513Z     {
2026-06-09T03:00:38.5053610Z       "id": "REQ-MIGRATE-1",
2026-06-09T03:00:38.5053767Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-09T03:00:38.5053862Z       "requiredStages": [],
2026-06-09T03:00:38.5053944Z       "stages": {
2026-06-09T03:00:38.5054025Z         "doc": {
2026-06-09T03:00:38.5054115Z           "complete": false,
2026-06-09T03:00:38.5054201Z           "evidence": []
2026-06-09T03:00:38.5054278Z         },
2026-06-09T03:00:38.5054358Z         "impl": {
2026-06-09T03:00:38.5054453Z           "complete": false,
2026-06-09T03:00:38.5054544Z           "evidence": []
2026-06-09T03:00:38.5054640Z         },
2026-06-09T03:00:38.5054724Z         "int": {
2026-06-09T03:00:38.5054814Z           "complete": false,
2026-06-09T03:00:38.5054900Z           "evidence": []
2026-06-09T03:00:38.5054981Z         },
2026-06-09T03:00:38.5055065Z         "unit": {
2026-06-09T03:00:38.5055155Z           "complete": false,
2026-06-09T03:00:38.5055236Z           "evidence": []
2026-06-09T03:00:38.5055319Z         }
2026-06-09T03:00:38.5055398Z       }
2026-06-09T03:00:38.5055474Z     },
2026-06-09T03:00:38.5055556Z     {
2026-06-09T03:00:38.5055647Z       "id": "REQ-MSG-1",
2026-06-09T03:00:38.5056051Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-09T03:00:38.5056127Z       "requiredStages": [
2026-06-09T03:00:38.5056215Z         "impl",
2026-06-09T03:00:38.5056295Z         "unit",
2026-06-09T03:00:38.5056399Z         "int"
2026-06-09T03:00:38.5056482Z       ],
2026-06-09T03:00:38.5056710Z       "stages": {
2026-06-09T03:00:38.5056801Z         "doc": {
2026-06-09T03:00:38.5056887Z           "complete": false,
2026-06-09T03:00:38.5057063Z           "evidence": []
2026-06-09T03:00:38.5057145Z         },
2026-06-09T03:00:38.5057230Z         "impl": {
2026-06-09T03:00:38.5057319Z           "complete": true,
2026-06-09T03:00:38.5057406Z           "evidence": [
2026-06-09T03:00:38.5057489Z             {
2026-06-09T03:00:38.5057605Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5057691Z               "line": 28
2026-06-09T03:00:38.5057772Z             },
2026-06-09T03:00:38.5057854Z             {
2026-06-09T03:00:38.5057963Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5058048Z               "line": 94
2026-06-09T03:00:38.5058131Z             },
2026-06-09T03:00:38.5058212Z             {
2026-06-09T03:00:38.5058320Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5058411Z               "line": 127
2026-06-09T03:00:38.5058507Z             },
2026-06-09T03:00:38.5058587Z             {
2026-06-09T03:00:38.5058702Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5058788Z               "line": 149
2026-06-09T03:00:38.5058869Z             },
2026-06-09T03:00:38.5058954Z             {
2026-06-09T03:00:38.5059060Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5059146Z               "line": 174
2026-06-09T03:00:38.5059226Z             },
2026-06-09T03:00:38.5059307Z             {
2026-06-09T03:00:38.5059428Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T03:00:38.5059512Z               "line": 18
2026-06-09T03:00:38.5059594Z             },
2026-06-09T03:00:38.5059671Z             {
2026-06-09T03:00:38.5059794Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.5059888Z               "line": 13
2026-06-09T03:00:38.5059976Z             },
2026-06-09T03:00:38.5060062Z             {
2026-06-09T03:00:38.5060240Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.5060331Z               "line": 61
2026-06-09T03:00:38.5060417Z             },
2026-06-09T03:00:38.5060487Z             {
2026-06-09T03:00:38.5060615Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T03:00:38.5060702Z               "line": 10
2026-06-09T03:00:38.5060783Z             }
2026-06-09T03:00:38.5060859Z           ]
2026-06-09T03:00:38.5060944Z         },
2026-06-09T03:00:38.5061026Z         "int": {
2026-06-09T03:00:38.5061122Z           "complete": true,
2026-06-09T03:00:38.5061211Z           "evidence": [
2026-06-09T03:00:38.5061283Z             {
2026-06-09T03:00:38.5061417Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T03:00:38.5061502Z               "line": 9
2026-06-09T03:00:38.5061618Z             },
2026-06-09T03:00:38.5061698Z             {
2026-06-09T03:00:38.5061841Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T03:00:38.5061994Z               "line": 70
2026-06-09T03:00:38.5064799Z             },
2026-06-09T03:00:38.5064909Z             {
2026-06-09T03:00:38.5065061Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T03:00:38.5065157Z               "line": 129
2026-06-09T03:00:38.5065238Z             }
2026-06-09T03:00:38.5065327Z           ]
2026-06-09T03:00:38.5065412Z         },
2026-06-09T03:00:38.5065498Z         "unit": {
2026-06-09T03:00:38.5065592Z           "complete": true,
2026-06-09T03:00:38.5065677Z           "evidence": [
2026-06-09T03:00:38.5065763Z             {
2026-06-09T03:00:38.5065879Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5065968Z               "line": 203
2026-06-09T03:00:38.5066053Z             },
2026-06-09T03:00:38.5066131Z             {
2026-06-09T03:00:38.5066255Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5066340Z               "line": 232
2026-06-09T03:00:38.5066422Z             },
2026-06-09T03:00:38.5066498Z             {
2026-06-09T03:00:38.5066841Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5066931Z               "line": 277
2026-06-09T03:00:38.5067100Z             },
2026-06-09T03:00:38.5067179Z             {
2026-06-09T03:00:38.5067284Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5067376Z               "line": 300
2026-06-09T03:00:38.5067452Z             },
2026-06-09T03:00:38.5067546Z             {
2026-06-09T03:00:38.5067661Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T03:00:38.5067772Z               "line": 324
2026-06-09T03:00:38.5067879Z             },
2026-06-09T03:00:38.5067957Z             {
2026-06-09T03:00:38.5068073Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T03:00:38.5068156Z               "line": 203
2026-06-09T03:00:38.5068242Z             },
2026-06-09T03:00:38.5068323Z             {
2026-06-09T03:00:38.5068428Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T03:00:38.5068523Z               "line": 236
2026-06-09T03:00:38.5068608Z             },
2026-06-09T03:00:38.5068691Z             {
2026-06-09T03:00:38.5068800Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T03:00:38.5068894Z               "line": 250
2026-06-09T03:00:38.5068976Z             },
2026-06-09T03:00:38.5069057Z             {
2026-06-09T03:00:38.5069166Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T03:00:38.5069252Z               "line": 262
2026-06-09T03:00:38.5069335Z             },
2026-06-09T03:00:38.5069415Z             {
2026-06-09T03:00:38.5069557Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.5069664Z               "line": 158
2026-06-09T03:00:38.5069753Z             },
2026-06-09T03:00:38.5069839Z             {
2026-06-09T03:00:38.5069955Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T03:00:38.5070053Z               "line": 241
2026-06-09T03:00:38.5070134Z             },
2026-06-09T03:00:38.5070216Z             {
2026-06-09T03:00:38.5070336Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T03:00:38.5070425Z               "line": 68
2026-06-09T03:00:38.5070507Z             },
2026-06-09T03:00:38.5070589Z             {
2026-06-09T03:00:38.5070693Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T03:00:38.5070782Z               "line": 77
2026-06-09T03:00:38.5070863Z             },
2026-06-09T03:00:38.5070949Z             {
2026-06-09T03:00:38.5071052Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T03:00:38.5071137Z               "line": 83
2026-06-09T03:00:38.5071223Z             },
2026-06-09T03:00:38.5071300Z             {
2026-06-09T03:00:38.5071404Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T03:00:38.5071490Z               "line": 102
2026-06-09T03:00:38.5071572Z             }
2026-06-09T03:00:38.5071658Z           ]
2026-06-09T03:00:38.5071742Z         }
2026-06-09T03:00:38.5071829Z       }
2026-06-09T03:00:38.5071906Z     },
2026-06-09T03:00:38.5071991Z     {
2026-06-09T03:00:38.5072095Z       "id": "REQ-MSG-2",
2026-06-09T03:00:38.5072363Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-09T03:00:38.5072459Z       "requiredStages": [
2026-06-09T03:00:38.5072545Z         "impl",
2026-06-09T03:00:38.5072634Z         "unit"
2026-06-09T03:00:38.5072711Z       ],
2026-06-09T03:00:38.5072802Z       "stages": {
2026-06-09T03:00:38.5072883Z         "doc": {
2026-06-09T03:00:38.5072982Z           "complete": false,
2026-06-09T03:00:38.5073073Z           "evidence": []
2026-06-09T03:00:38.5073151Z         },
2026-06-09T03:00:38.5073245Z         "impl": {
2026-06-09T03:00:38.5073339Z           "complete": true,
2026-06-09T03:00:38.5073429Z           "evidence": [
2026-06-09T03:00:38.5073506Z             {
2026-06-09T03:00:38.5073614Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5073737Z               "line": 11
2026-06-09T03:00:38.5073834Z             },
2026-06-09T03:00:38.5074124Z             {
2026-06-09T03:00:38.5074229Z               "path": "crates/spt/src/main.rs",
2026-06-09T03:00:38.5074319Z               "line": 8
2026-06-09T03:00:38.5074395Z             }
2026-06-09T03:00:38.5074487Z           ]
2026-06-09T03:00:38.5074572Z         },
2026-06-09T03:00:38.5074652Z         "int": {
2026-06-09T03:00:38.5074749Z           "complete": false,
2026-06-09T03:00:38.5074834Z           "evidence": []
2026-06-09T03:00:38.5074920Z         },
2026-06-09T03:00:38.5075001Z         "unit": {
2026-06-09T03:00:38.5075093Z           "complete": true,
2026-06-09T03:00:38.5075182Z           "evidence": [
2026-06-09T03:00:38.5075268Z             {
2026-06-09T03:00:38.5075369Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5075460Z               "line": 4914
2026-06-09T03:00:38.5075544Z             },
2026-06-09T03:00:38.5075626Z             {
2026-06-09T03:00:38.5075727Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5075817Z               "line": 4963
2026-06-09T03:00:38.5075911Z             },
2026-06-09T03:00:38.5075991Z             {
2026-06-09T03:00:38.5076092Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5076185Z               "line": 4986
2026-06-09T03:00:38.5076266Z             },
2026-06-09T03:00:38.5076347Z             {
2026-06-09T03:00:38.5076449Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5076533Z               "line": 6424
2026-06-09T03:00:38.5076614Z             },
2026-06-09T03:00:38.5076696Z             {
2026-06-09T03:00:38.5076796Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5076880Z               "line": 6433
2026-06-09T03:00:38.5077115Z             },
2026-06-09T03:00:38.5077190Z             {
2026-06-09T03:00:38.5077282Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5077373Z               "line": 6447
2026-06-09T03:00:38.5077454Z             }
2026-06-09T03:00:38.5077539Z           ]
2026-06-09T03:00:38.5077621Z         }
2026-06-09T03:00:38.5077711Z       }
2026-06-09T03:00:38.5077802Z     },
2026-06-09T03:00:38.5077883Z     {
2026-06-09T03:00:38.5077974Z       "id": "REQ-MSG-3",
2026-06-09T03:00:38.5078341Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-09T03:00:38.5078435Z       "requiredStages": [
2026-06-09T03:00:38.5078522Z         "impl",
2026-06-09T03:00:38.5078604Z         "unit",
2026-06-09T03:00:38.5078684Z         "int"
2026-06-09T03:00:38.5078764Z       ],
2026-06-09T03:00:38.5078853Z       "stages": {
2026-06-09T03:00:38.5078936Z         "doc": {
2026-06-09T03:00:38.5079027Z           "complete": false,
2026-06-09T03:00:38.5079116Z           "evidence": []
2026-06-09T03:00:38.5079198Z         },
2026-06-09T03:00:38.5079284Z         "impl": {
2026-06-09T03:00:38.5079374Z           "complete": true,
2026-06-09T03:00:38.5079459Z           "evidence": [
2026-06-09T03:00:38.5079541Z             {
2026-06-09T03:00:38.5079661Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T03:00:38.5079755Z               "line": 19
2026-06-09T03:00:38.5079837Z             },
2026-06-09T03:00:38.5079923Z             {
2026-06-09T03:00:38.5080037Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.5080122Z               "line": 21
2026-06-09T03:00:38.5080205Z             },
2026-06-09T03:00:38.5080284Z             {
2026-06-09T03:00:38.5080394Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.5080476Z               "line": 48
2026-06-09T03:00:38.5080562Z             },
2026-06-09T03:00:38.5080642Z             {
2026-06-09T03:00:38.5080748Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.5080834Z               "line": 142
2026-06-09T03:00:38.5080914Z             }
2026-06-09T03:00:38.5080999Z           ]
2026-06-09T03:00:38.5081076Z         },
2026-06-09T03:00:38.5081164Z         "int": {
2026-06-09T03:00:38.5081248Z           "complete": true,
2026-06-09T03:00:38.5081523Z           "evidence": [
2026-06-09T03:00:38.5081616Z             {
2026-06-09T03:00:38.5081755Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T03:00:38.5081841Z               "line": 10
2026-06-09T03:00:38.5081922Z             },
2026-06-09T03:00:38.5082007Z             {
2026-06-09T03:00:38.5082132Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T03:00:38.5082227Z               "line": 70
2026-06-09T03:00:38.5082307Z             }
2026-06-09T03:00:38.5082394Z           ]
2026-06-09T03:00:38.5082475Z         },
2026-06-09T03:00:38.5082556Z         "unit": {
2026-06-09T03:00:38.5082646Z           "complete": true,
2026-06-09T03:00:38.5082733Z           "evidence": [
2026-06-09T03:00:38.5082813Z             {
2026-06-09T03:00:38.5082918Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.5083014Z               "line": 196
2026-06-09T03:00:38.5083096Z             },
2026-06-09T03:00:38.5083176Z             {
2026-06-09T03:00:38.5083281Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.5083367Z               "line": 215
2026-06-09T03:00:38.5083448Z             },
2026-06-09T03:00:38.5083528Z             {
2026-06-09T03:00:38.5083633Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T03:00:38.5083744Z               "line": 237
2026-06-09T03:00:38.5083833Z             }
2026-06-09T03:00:38.5083923Z           ]
2026-06-09T03:00:38.5084004Z         }
2026-06-09T03:00:38.5084085Z       }
2026-06-09T03:00:38.5084169Z     },
2026-06-09T03:00:38.5084249Z     {
2026-06-09T03:00:38.5084341Z       "id": "REQ-MSG-4",
2026-06-09T03:00:38.5085156Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-09T03:00:38.5085256Z       "requiredStages": [
2026-06-09T03:00:38.5085347Z         "impl",
2026-06-09T03:00:38.5085442Z         "unit",
2026-06-09T03:00:38.5085528Z         "int"
2026-06-09T03:00:38.5085605Z       ],
2026-06-09T03:00:38.5085695Z       "stages": {
2026-06-09T03:00:38.5085775Z         "doc": {
2026-06-09T03:00:38.5085871Z           "complete": false,
2026-06-09T03:00:38.5085958Z           "evidence": []
2026-06-09T03:00:38.5086043Z         },
2026-06-09T03:00:38.5086124Z         "impl": {
2026-06-09T03:00:38.5086220Z           "complete": true,
2026-06-09T03:00:38.5086306Z           "evidence": [
2026-06-09T03:00:38.5086386Z             {
2026-06-09T03:00:38.5086494Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5086581Z               "line": 16
2026-06-09T03:00:38.5086661Z             },
2026-06-09T03:00:38.5086741Z             {
2026-06-09T03:00:38.5086850Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5086936Z               "line": 25
2026-06-09T03:00:38.5087098Z             },
2026-06-09T03:00:38.5087183Z             {
2026-06-09T03:00:38.5087308Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5087398Z               "line": 47
2026-06-09T03:00:38.5087489Z             },
2026-06-09T03:00:38.5087571Z             {
2026-06-09T03:00:38.5087685Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5087770Z               "line": 363
2026-06-09T03:00:38.5087852Z             },
2026-06-09T03:00:38.5087933Z             {
2026-06-09T03:00:38.5088038Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5088128Z               "line": 1903
2026-06-09T03:00:38.5088210Z             }
2026-06-09T03:00:38.5088300Z           ]
2026-06-09T03:00:38.5088376Z         },
2026-06-09T03:00:38.5088462Z         "int": {
2026-06-09T03:00:38.5088549Z           "complete": true,
2026-06-09T03:00:38.5088642Z           "evidence": [
2026-06-09T03:00:38.5088733Z             {
2026-06-09T03:00:38.5088854Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T03:00:38.5089131Z               "line": 93
2026-06-09T03:00:38.5089216Z             },
2026-06-09T03:00:38.5089305Z             {
2026-06-09T03:00:38.5089418Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T03:00:38.5089506Z               "line": 123
2026-06-09T03:00:38.5089587Z             }
2026-06-09T03:00:38.5089667Z           ]
2026-06-09T03:00:38.5089753Z         },
2026-06-09T03:00:38.5089835Z         "unit": {
2026-06-09T03:00:38.5089925Z           "complete": true,
2026-06-09T03:00:38.5090010Z           "evidence": [
2026-06-09T03:00:38.5090097Z             {
2026-06-09T03:00:38.5090201Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5090282Z               "line": 62
2026-06-09T03:00:38.5090368Z             },
2026-06-09T03:00:38.5090450Z             {
2026-06-09T03:00:38.5090554Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5090634Z               "line": 73
2026-06-09T03:00:38.5090721Z             },
2026-06-09T03:00:38.5090803Z             {
2026-06-09T03:00:38.5090921Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5091007Z               "line": 84
2026-06-09T03:00:38.5091089Z             },
2026-06-09T03:00:38.5091174Z             {
2026-06-09T03:00:38.5091274Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5091361Z               "line": 96
2026-06-09T03:00:38.5091447Z             },
2026-06-09T03:00:38.5091531Z             {
2026-06-09T03:00:38.5091632Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5091714Z               "line": 105
2026-06-09T03:00:38.5091799Z             },
2026-06-09T03:00:38.5091879Z             {
2026-06-09T03:00:38.5091983Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T03:00:38.5092069Z               "line": 120
2026-06-09T03:00:38.5092149Z             }
2026-06-09T03:00:38.5092229Z           ]
2026-06-09T03:00:38.5092310Z         }
2026-06-09T03:00:38.5092392Z       }
2026-06-09T03:00:38.5092468Z     },
2026-06-09T03:00:38.5092563Z     {
2026-06-09T03:00:38.5092653Z       "id": "REQ-NET-1",
2026-06-09T03:00:38.5092825Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-09T03:00:38.5092915Z       "requiredStages": [
2026-06-09T03:00:38.5092998Z         "impl",
2026-06-09T03:00:38.5093082Z         "unit",
2026-06-09T03:00:38.5093168Z         "int"
2026-06-09T03:00:38.5093254Z       ],
2026-06-09T03:00:38.5093336Z       "stages": {
2026-06-09T03:00:38.5093416Z         "doc": {
2026-06-09T03:00:38.5093511Z           "complete": false,
2026-06-09T03:00:38.5093598Z           "evidence": []
2026-06-09T03:00:38.5093679Z         },
2026-06-09T03:00:38.5093764Z         "impl": {
2026-06-09T03:00:38.5093855Z           "complete": true,
2026-06-09T03:00:38.5093942Z           "evidence": [
2026-06-09T03:00:38.5094022Z             {
2026-06-09T03:00:38.5094146Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5094228Z               "line": 54
2026-06-09T03:00:38.5094319Z             },
2026-06-09T03:00:38.5094407Z             {
2026-06-09T03:00:38.5094521Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5094608Z               "line": 594
2026-06-09T03:00:38.5094692Z             },
2026-06-09T03:00:38.5094772Z             {
2026-06-09T03:00:38.5094881Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-09T03:00:38.5094968Z               "line": 69
2026-06-09T03:00:38.5095048Z             },
2026-06-09T03:00:38.5095134Z             {
2026-06-09T03:00:38.5095250Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5095335Z               "line": 97
2026-06-09T03:00:38.5095420Z             },
2026-06-09T03:00:38.5095497Z             {
2026-06-09T03:00:38.5095611Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5095697Z               "line": 159
2026-06-09T03:00:38.5095787Z             },
2026-06-09T03:00:38.5095870Z             {
2026-06-09T03:00:38.5096064Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5096227Z               "line": 175
2026-06-09T03:00:38.5096317Z             },
2026-06-09T03:00:38.5096408Z             {
2026-06-09T03:00:38.5096519Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5096608Z               "line": 190
2026-06-09T03:00:38.5096693Z             },
2026-06-09T03:00:38.5096775Z             {
2026-06-09T03:00:38.5096890Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5097054Z               "line": 271
2026-06-09T03:00:38.5097136Z             },
2026-06-09T03:00:38.5097221Z             {
2026-06-09T03:00:38.5097334Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5097420Z               "line": 306
2026-06-09T03:00:38.5097501Z             },
2026-06-09T03:00:38.5097583Z             {
2026-06-09T03:00:38.5097691Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5097782Z               "line": 312
2026-06-09T03:00:38.5097878Z             },
2026-06-09T03:00:38.5097963Z             {
2026-06-09T03:00:38.5098082Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5098169Z               "line": 318
2026-06-09T03:00:38.5098259Z             },
2026-06-09T03:00:38.5098339Z             {
2026-06-09T03:00:38.5098450Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5098540Z               "line": 334
2026-06-09T03:00:38.5098621Z             },
2026-06-09T03:00:38.5098703Z             {
2026-06-09T03:00:38.5098818Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5098902Z               "line": 354
2026-06-09T03:00:38.5098983Z             },
2026-06-09T03:00:38.5099066Z             {
2026-06-09T03:00:38.5099179Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T03:00:38.5099270Z               "line": 35
2026-06-09T03:00:38.5099351Z             },
2026-06-09T03:00:38.5099433Z             {
2026-06-09T03:00:38.5099550Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T03:00:38.5099637Z               "line": 85
2026-06-09T03:00:38.5099719Z             },
2026-06-09T03:00:38.5099805Z             {
2026-06-09T03:00:38.5099912Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.5099998Z               "line": 135
2026-06-09T03:00:38.5100080Z             },
2026-06-09T03:00:38.5100161Z             {
2026-06-09T03:00:38.5100260Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5100347Z               "line": 1751
2026-06-09T03:00:38.5100428Z             },
2026-06-09T03:00:38.5100509Z             {
2026-06-09T03:00:38.5100613Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5100700Z               "line": 17
2026-06-09T03:00:38.5100781Z             }
2026-06-09T03:00:38.5100856Z           ]
2026-06-09T03:00:38.5100942Z         },
2026-06-09T03:00:38.5101024Z         "int": {
2026-06-09T03:00:38.5101114Z           "complete": true,
2026-06-09T03:00:38.5101218Z           "evidence": [
2026-06-09T03:00:38.5101301Z             {
2026-06-09T03:00:38.5101424Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5101509Z               "line": 340
2026-06-09T03:00:38.5101601Z             },
2026-06-09T03:00:38.5101682Z             {
2026-06-09T03:00:38.5101796Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5101882Z               "line": 604
2026-06-09T03:00:38.5101964Z             },
2026-06-09T03:00:38.5102044Z             {
2026-06-09T03:00:38.5102158Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5102246Z               "line": 877
2026-06-09T03:00:38.5102326Z             }
2026-06-09T03:00:38.5102406Z           ]
2026-06-09T03:00:38.5102486Z         },
2026-06-09T03:00:38.5102572Z         "unit": {
2026-06-09T03:00:38.5102663Z           "complete": true,
2026-06-09T03:00:38.5102746Z           "evidence": [
2026-06-09T03:00:38.5102827Z             {
2026-06-09T03:00:38.5103132Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5103223Z               "line": 650
2026-06-09T03:00:38.5103304Z             },
2026-06-09T03:00:38.5103385Z             {
2026-06-09T03:00:38.5103499Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5103587Z               "line": 685
2026-06-09T03:00:38.5103666Z             },
2026-06-09T03:00:38.5103747Z             {
2026-06-09T03:00:38.5103868Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5103957Z               "line": 931
2026-06-09T03:00:38.5104034Z             },
2026-06-09T03:00:38.5104119Z             {
2026-06-09T03:00:38.5104244Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-09T03:00:38.5104329Z               "line": 152
2026-06-09T03:00:38.5104415Z             },
2026-06-09T03:00:38.5104497Z             {
2026-06-09T03:00:38.5104610Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5104701Z               "line": 442
2026-06-09T03:00:38.5104788Z             },
2026-06-09T03:00:38.5104874Z             {
2026-06-09T03:00:38.5104986Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5105071Z               "line": 456
2026-06-09T03:00:38.5105153Z             },
2026-06-09T03:00:38.5105233Z             {
2026-06-09T03:00:38.5105346Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5105437Z               "line": 475
2026-06-09T03:00:38.5105523Z             },
2026-06-09T03:00:38.5105604Z             {
2026-06-09T03:00:38.5105717Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T03:00:38.5105805Z               "line": 119
2026-06-09T03:00:38.5105886Z             },
2026-06-09T03:00:38.5105966Z             {
2026-06-09T03:00:38.5106081Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T03:00:38.5106167Z               "line": 162
2026-06-09T03:00:38.5106248Z             },
2026-06-09T03:00:38.5106338Z             {
2026-06-09T03:00:38.5106449Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T03:00:38.5106538Z               "line": 492
2026-06-09T03:00:38.5106615Z             },
2026-06-09T03:00:38.5106696Z             {
2026-06-09T03:00:38.5106806Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5106891Z               "line": 615
2026-06-09T03:00:38.5107059Z             },
2026-06-09T03:00:38.5107140Z             {
2026-06-09T03:00:38.5107239Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5107320Z               "line": 1004
2026-06-09T03:00:38.5107393Z             }
2026-06-09T03:00:38.5107473Z           ]
2026-06-09T03:00:38.5107544Z         }
2026-06-09T03:00:38.5107624Z       }
2026-06-09T03:00:38.5107711Z     },
2026-06-09T03:00:38.5107818Z     {
2026-06-09T03:00:38.5107913Z       "id": "REQ-NET-2",
2026-06-09T03:00:38.5108081Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-09T03:00:38.5108180Z       "requiredStages": [
2026-06-09T03:00:38.5108265Z         "impl"
2026-06-09T03:00:38.5108347Z       ],
2026-06-09T03:00:38.5108433Z       "stages": {
2026-06-09T03:00:38.5108518Z         "doc": {
2026-06-09T03:00:38.5108609Z           "complete": false,
2026-06-09T03:00:38.5108705Z           "evidence": []
2026-06-09T03:00:38.5108795Z         },
2026-06-09T03:00:38.5108881Z         "impl": {
2026-06-09T03:00:38.5108967Z           "complete": true,
2026-06-09T03:00:38.5109053Z           "evidence": [
2026-06-09T03:00:38.5109139Z             {
2026-06-09T03:00:38.5109253Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.5109335Z               "line": 57
2026-06-09T03:00:38.5109415Z             },
2026-06-09T03:00:38.5109496Z             {
2026-06-09T03:00:38.5109612Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5109697Z               "line": 71
2026-06-09T03:00:38.5109777Z             },
2026-06-09T03:00:38.5109858Z             {
2026-06-09T03:00:38.5110173Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5110270Z               "line": 81
2026-06-09T03:00:38.5110350Z             },
2026-06-09T03:00:38.5110435Z             {
2026-06-09T03:00:38.5110544Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5110636Z               "line": 159
2026-06-09T03:00:38.5110716Z             },
2026-06-09T03:00:38.5110791Z             {
2026-06-09T03:00:38.5110902Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5110988Z               "line": 175
2026-06-09T03:00:38.5111106Z             },
2026-06-09T03:00:38.5111197Z             {
2026-06-09T03:00:38.5111322Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T03:00:38.5111421Z               "line": 190
2026-06-09T03:00:38.5111517Z             }
2026-06-09T03:00:38.5111604Z           ]
2026-06-09T03:00:38.5111689Z         },
2026-06-09T03:00:38.5111769Z         "int": {
2026-06-09T03:00:38.5111866Z           "complete": false,
2026-06-09T03:00:38.5111956Z           "evidence": []
2026-06-09T03:00:38.5112042Z         },
2026-06-09T03:00:38.5112123Z         "unit": {
2026-06-09T03:00:38.5112228Z           "complete": true,
2026-06-09T03:00:38.5112313Z           "evidence": [
2026-06-09T03:00:38.5112394Z             {
2026-06-09T03:00:38.5112505Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.5112623Z               "line": 402
2026-06-09T03:00:38.5112718Z             }
2026-06-09T03:00:38.5112806Z           ]
2026-06-09T03:00:38.5112901Z         }
2026-06-09T03:00:38.5112985Z       }
2026-06-09T03:00:38.5113103Z     },
2026-06-09T03:00:38.5113204Z     {
2026-06-09T03:00:38.5113320Z       "id": "REQ-NET-3",
2026-06-09T03:00:38.5113503Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-09T03:00:38.5113598Z       "requiredStages": [
2026-06-09T03:00:38.5113683Z         "impl",
2026-06-09T03:00:38.5113764Z         "unit"
2026-06-09T03:00:38.5113851Z       ],
2026-06-09T03:00:38.5113955Z       "stages": {
2026-06-09T03:00:38.5114041Z         "doc": {
2026-06-09T03:00:38.5114137Z           "complete": false,
2026-06-09T03:00:38.5114226Z           "evidence": []
2026-06-09T03:00:38.5114312Z         },
2026-06-09T03:00:38.5114394Z         "impl": {
2026-06-09T03:00:38.5114485Z           "complete": true,
2026-06-09T03:00:38.5114571Z           "evidence": [
2026-06-09T03:00:38.5114660Z             {
2026-06-09T03:00:38.5114781Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.5114865Z               "line": 39
2026-06-09T03:00:38.5114951Z             },
2026-06-09T03:00:38.5115033Z             {
2026-06-09T03:00:38.5115152Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.5115238Z               "line": 182
2026-06-09T03:00:38.5115324Z             },
2026-06-09T03:00:38.5115406Z             {
2026-06-09T03:00:38.5115518Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T03:00:38.5115608Z               "line": 333
2026-06-09T03:00:38.5115699Z             },
2026-06-09T03:00:38.5115784Z             {
2026-06-09T03:00:38.5115897Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T03:00:38.5115987Z               "line": 36
2026-06-09T03:00:38.5116069Z             },
2026-06-09T03:00:38.5116155Z             {
2026-06-09T03:00:38.5116278Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5116380Z               "line": 158
2026-06-09T03:00:38.5116470Z             },
2026-06-09T03:00:38.5116549Z             {
2026-06-09T03:00:38.5116694Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5116799Z               "line": 212
2026-06-09T03:00:38.5116884Z             },
2026-06-09T03:00:38.5117056Z             {
2026-06-09T03:00:38.5117184Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5117290Z               "line": 233
2026-06-09T03:00:38.5117371Z             },
2026-06-09T03:00:38.5117456Z             {
2026-06-09T03:00:38.5117790Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5117880Z               "line": 291
2026-06-09T03:00:38.5117963Z             },
2026-06-09T03:00:38.5118047Z             {
2026-06-09T03:00:38.5118165Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5118251Z               "line": 310
2026-06-09T03:00:38.5118341Z             },
2026-06-09T03:00:38.5118421Z             {
2026-06-09T03:00:38.5118540Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5118626Z               "line": 348
2026-06-09T03:00:38.5118712Z             },
2026-06-09T03:00:38.5118802Z             {
2026-06-09T03:00:38.5118917Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5119008Z               "line": 393
2026-06-09T03:00:38.5119093Z             },
2026-06-09T03:00:38.5119174Z             {
2026-06-09T03:00:38.5119294Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5119398Z               "line": 406
2026-06-09T03:00:38.5119479Z             },
2026-06-09T03:00:38.5119566Z             {
2026-06-09T03:00:38.5119680Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.5119770Z               "line": 29
2026-06-09T03:00:38.5119852Z             },
2026-06-09T03:00:38.5119938Z             {
2026-06-09T03:00:38.5120056Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.5120143Z               "line": 72
2026-06-09T03:00:38.5120229Z             },
2026-06-09T03:00:38.5120309Z             {
2026-06-09T03:00:38.5120428Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.5120520Z               "line": 123
2026-06-09T03:00:38.5120605Z             }
2026-06-09T03:00:38.5120689Z           ]
2026-06-09T03:00:38.5120782Z         },
2026-06-09T03:00:38.5120868Z         "int": {
2026-06-09T03:00:38.5120957Z           "complete": false,
2026-06-09T03:00:38.5121051Z           "evidence": []
2026-06-09T03:00:38.5121143Z         },
2026-06-09T03:00:38.5121229Z         "unit": {
2026-06-09T03:00:38.5121319Z           "complete": true,
2026-06-09T03:00:38.5121414Z           "evidence": [
2026-06-09T03:00:38.5121501Z             {
2026-06-09T03:00:38.5121615Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T03:00:38.5121704Z               "line": 223
2026-06-09T03:00:38.5121782Z             },
2026-06-09T03:00:38.5121863Z             {
2026-06-09T03:00:38.5121972Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T03:00:38.5122063Z               "line": 351
2026-06-09T03:00:38.5122144Z             },
2026-06-09T03:00:38.5122225Z             {
2026-06-09T03:00:38.5122338Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T03:00:38.5122426Z               "line": 502
2026-06-09T03:00:38.5122511Z             },
2026-06-09T03:00:38.5122592Z             {
2026-06-09T03:00:38.5122707Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T03:00:38.5122802Z               "line": 93
2026-06-09T03:00:38.5122887Z             },
2026-06-09T03:00:38.5122973Z             {
2026-06-09T03:00:38.5123079Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T03:00:38.5123169Z               "line": 142
2026-06-09T03:00:38.5123254Z             },
2026-06-09T03:00:38.5123341Z             {
2026-06-09T03:00:38.5123461Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.5123550Z               "line": 315
2026-06-09T03:00:38.5123640Z             },
2026-06-09T03:00:38.5123721Z             {
2026-06-09T03:00:38.5123843Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.5123928Z               "line": 355
2026-06-09T03:00:38.5124015Z             },
2026-06-09T03:00:38.5124101Z             {
2026-06-09T03:00:38.5124214Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T03:00:38.5124305Z               "line": 494
2026-06-09T03:00:38.5124387Z             }
2026-06-09T03:00:38.5124473Z           ]
2026-06-09T03:00:38.5124707Z         }
2026-06-09T03:00:38.5124796Z       }
2026-06-09T03:00:38.5124881Z     },
2026-06-09T03:00:38.5124969Z     {
2026-06-09T03:00:38.5125069Z       "id": "REQ-NODE-IDENTITY",
2026-06-09T03:00:38.5125288Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-09T03:00:38.5125383Z       "requiredStages": [
2026-06-09T03:00:38.5125469Z         "impl",
2026-06-09T03:00:38.5125555Z         "unit"
2026-06-09T03:00:38.5125641Z       ],
2026-06-09T03:00:38.5125726Z       "stages": {
2026-06-09T03:00:38.5125812Z         "doc": {
2026-06-09T03:00:38.5125903Z           "complete": false,
2026-06-09T03:00:38.5125990Z           "evidence": []
2026-06-09T03:00:38.5126074Z         },
2026-06-09T03:00:38.5126159Z         "impl": {
2026-06-09T03:00:38.5126255Z           "complete": true,
2026-06-09T03:00:38.5126340Z           "evidence": [
2026-06-09T03:00:38.5126428Z             {
2026-06-09T03:00:38.5126552Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5126648Z               "line": 60
2026-06-09T03:00:38.5126729Z             },
2026-06-09T03:00:38.5126819Z             {
2026-06-09T03:00:38.5127030Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5127109Z               "line": 68
2026-06-09T03:00:38.5127191Z             },
2026-06-09T03:00:38.5127287Z             {
2026-06-09T03:00:38.5127406Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5127496Z               "line": 86
2026-06-09T03:00:38.5130388Z             },
2026-06-09T03:00:38.5130493Z             {
2026-06-09T03:00:38.5130626Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5130717Z               "line": 120
2026-06-09T03:00:38.5130798Z             },
2026-06-09T03:00:38.5130888Z             {
2026-06-09T03:00:38.5131012Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5131104Z               "line": 127
2026-06-09T03:00:38.5131202Z             },
2026-06-09T03:00:38.5131284Z             {
2026-06-09T03:00:38.5131405Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5131489Z               "line": 143
2026-06-09T03:00:38.5131574Z             },
2026-06-09T03:00:38.5131659Z             {
2026-06-09T03:00:38.5131770Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T03:00:38.5131860Z               "line": 16
2026-06-09T03:00:38.5131940Z             }
2026-06-09T03:00:38.5132027Z           ]
2026-06-09T03:00:38.5132108Z         },
2026-06-09T03:00:38.5132189Z         "int": {
2026-06-09T03:00:38.5132284Z           "complete": false,
2026-06-09T03:00:38.5132371Z           "evidence": []
2026-06-09T03:00:38.5132452Z         },
2026-06-09T03:00:38.5132532Z         "unit": {
2026-06-09T03:00:38.5132623Z           "complete": true,
2026-06-09T03:00:38.5132709Z           "evidence": [
2026-06-09T03:00:38.5132790Z             {
2026-06-09T03:00:38.5132923Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5133010Z               "line": 199
2026-06-09T03:00:38.5133095Z             },
2026-06-09T03:00:38.5133176Z             {
2026-06-09T03:00:38.5133296Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5133382Z               "line": 218
2026-06-09T03:00:38.5133462Z             },
2026-06-09T03:00:38.5133543Z             {
2026-06-09T03:00:38.5133654Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5133743Z               "line": 234
2026-06-09T03:00:38.5133824Z             },
2026-06-09T03:00:38.5133906Z             {
2026-06-09T03:00:38.5134016Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T03:00:38.5134100Z               "line": 256
2026-06-09T03:00:38.5134185Z             },
2026-06-09T03:00:38.5134267Z             {
2026-06-09T03:00:38.5134380Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T03:00:38.5134464Z               "line": 124
2026-06-09T03:00:38.5134545Z             },
2026-06-09T03:00:38.5134846Z             {
2026-06-09T03:00:38.5134961Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T03:00:38.5135051Z               "line": 140
2026-06-09T03:00:38.5135132Z             },
2026-06-09T03:00:38.5135214Z             {
2026-06-09T03:00:38.5135328Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T03:00:38.5135414Z               "line": 155
2026-06-09T03:00:38.5135500Z             }
2026-06-09T03:00:38.5135586Z           ]
2026-06-09T03:00:38.5135666Z         }
2026-06-09T03:00:38.5135752Z       }
2026-06-09T03:00:38.5135838Z     },
2026-06-09T03:00:38.5135915Z     {
2026-06-09T03:00:38.5136009Z       "id": "REQ-NOTIF-1",
2026-06-09T03:00:38.5136363Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-09T03:00:38.5136454Z       "requiredStages": [
2026-06-09T03:00:38.5136540Z         "impl",
2026-06-09T03:00:38.5136625Z         "unit",
2026-06-09T03:00:38.5136719Z         "int"
2026-06-09T03:00:38.5136795Z       ],
2026-06-09T03:00:38.5136881Z       "stages": {
2026-06-09T03:00:38.5137065Z         "doc": {
2026-06-09T03:00:38.5137155Z           "complete": false,
2026-06-09T03:00:38.5137251Z           "evidence": []
2026-06-09T03:00:38.5137341Z         },
2026-06-09T03:00:38.5137427Z         "impl": {
2026-06-09T03:00:38.5137514Z           "complete": true,
2026-06-09T03:00:38.5137604Z           "evidence": [
2026-06-09T03:00:38.5137684Z             {
2026-06-09T03:00:38.5137810Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5137894Z               "line": 514
2026-06-09T03:00:38.5137975Z             },
2026-06-09T03:00:38.5138056Z             {
2026-06-09T03:00:38.5138172Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5138258Z               "line": 30
2026-06-09T03:00:38.5138347Z             },
2026-06-09T03:00:38.5138434Z             {
2026-06-09T03:00:38.5138561Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5138652Z               "line": 62
2026-06-09T03:00:38.5138739Z             },
2026-06-09T03:00:38.5138820Z             {
2026-06-09T03:00:38.5138929Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5139015Z               "line": 86
2026-06-09T03:00:38.5139098Z             },
2026-06-09T03:00:38.5139186Z             {
2026-06-09T03:00:38.5139291Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5139376Z               "line": 100
2026-06-09T03:00:38.5139457Z             },
2026-06-09T03:00:38.5139536Z             {
2026-06-09T03:00:38.5139631Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5139717Z               "line": 135
2026-06-09T03:00:38.5139800Z             },
2026-06-09T03:00:38.5139889Z             {
2026-06-09T03:00:38.5140018Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5140113Z               "line": 180
2026-06-09T03:00:38.5140203Z             },
2026-06-09T03:00:38.5140289Z             {
2026-06-09T03:00:38.5140395Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5140481Z               "line": 251
2026-06-09T03:00:38.5140561Z             },
2026-06-09T03:00:38.5140643Z             {
2026-06-09T03:00:38.5140752Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5140842Z               "line": 361
2026-06-09T03:00:38.5140923Z             },
2026-06-09T03:00:38.5141001Z             {
2026-06-09T03:00:38.5141110Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5141195Z               "line": 421
2026-06-09T03:00:38.5141282Z             },
2026-06-09T03:00:38.5141368Z             {
2026-06-09T03:00:38.5141486Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5141572Z               "line": 24
2026-06-09T03:00:38.5141655Z             },
2026-06-09T03:00:38.5141738Z             {
2026-06-09T03:00:38.5141950Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5142129Z               "line": 34
2026-06-09T03:00:38.5142210Z             },
2026-06-09T03:00:38.5142292Z             {
2026-06-09T03:00:38.5142406Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5142491Z               "line": 60
2026-06-09T03:00:38.5142572Z             },
2026-06-09T03:00:38.5142654Z             {
2026-06-09T03:00:38.5142768Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5142849Z               "line": 82
2026-06-09T03:00:38.5142936Z             },
2026-06-09T03:00:38.5143021Z             {
2026-06-09T03:00:38.5143130Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5143217Z               "line": 94
2026-06-09T03:00:38.5143298Z             },
2026-06-09T03:00:38.5143383Z             {
2026-06-09T03:00:38.5143498Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5143584Z               "line": 43
2026-06-09T03:00:38.5143679Z             },
2026-06-09T03:00:38.5143760Z             {
2026-06-09T03:00:38.5143876Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.5143960Z               "line": 96
2026-06-09T03:00:38.5144041Z             },
2026-06-09T03:00:38.5144122Z             {
2026-06-09T03:00:38.5144237Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T03:00:38.5144322Z               "line": 20
2026-06-09T03:00:38.5144404Z             },
2026-06-09T03:00:38.5144495Z             {
2026-06-09T03:00:38.5144604Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T03:00:38.5144694Z               "line": 30
2026-06-09T03:00:38.5144779Z             },
2026-06-09T03:00:38.5144856Z             {
2026-06-09T03:00:38.5144973Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T03:00:38.5145058Z               "line": 50
2026-06-09T03:00:38.5145139Z             },
2026-06-09T03:00:38.5145221Z             {
2026-06-09T03:00:38.5145340Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5145430Z               "line": 28
2026-06-09T03:00:38.5145512Z             },
2026-06-09T03:00:38.5145603Z             {
2026-06-09T03:00:38.5145711Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5145798Z               "line": 126
2026-06-09T03:00:38.5145883Z             },
2026-06-09T03:00:38.5145964Z             {
2026-06-09T03:00:38.5146074Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5146156Z               "line": 161
2026-06-09T03:00:38.5146241Z             },
2026-06-09T03:00:38.5146326Z             {
2026-06-09T03:00:38.5146433Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5146517Z               "line": 202
2026-06-09T03:00:38.5146599Z             },
2026-06-09T03:00:38.5146679Z             {
2026-06-09T03:00:38.5146785Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5146870Z               "line": 213
2026-06-09T03:00:38.5147058Z             },
2026-06-09T03:00:38.5147143Z             {
2026-06-09T03:00:38.5147246Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5147336Z               "line": 238
2026-06-09T03:00:38.5147436Z             },
2026-06-09T03:00:38.5147520Z             {
2026-06-09T03:00:38.5147629Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5147716Z               "line": 261
2026-06-09T03:00:38.5147797Z             },
2026-06-09T03:00:38.5147878Z             {
2026-06-09T03:00:38.5147992Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5148083Z               "line": 63
2026-06-09T03:00:38.5148164Z             }
2026-06-09T03:00:38.5148249Z           ]
2026-06-09T03:00:38.5148326Z         },
2026-06-09T03:00:38.5148412Z         "int": {
2026-06-09T03:00:38.5148507Z           "complete": true,
2026-06-09T03:00:38.5148598Z           "evidence": [
2026-06-09T03:00:38.5148679Z             {
2026-06-09T03:00:38.5148898Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5149070Z               "line": 284
2026-06-09T03:00:38.5149151Z             },
2026-06-09T03:00:38.5149232Z             {
2026-06-09T03:00:38.5149357Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-09T03:00:38.5149446Z               "line": 102
2026-06-09T03:00:38.5149527Z             },
2026-06-09T03:00:38.5149610Z             {
2026-06-09T03:00:38.5149728Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5149813Z               "line": 613
2026-06-09T03:00:38.5149893Z             },
2026-06-09T03:00:38.5149970Z             {
2026-06-09T03:00:38.5150092Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5150182Z               "line": 1006
2026-06-09T03:00:38.5150259Z             }
2026-06-09T03:00:38.5150345Z           ]
2026-06-09T03:00:38.5150425Z         },
2026-06-09T03:00:38.5150511Z         "unit": {
2026-06-09T03:00:38.5150602Z           "complete": true,
2026-06-09T03:00:38.5150708Z           "evidence": [
2026-06-09T03:00:38.5150787Z             {
2026-06-09T03:00:38.5150902Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5150993Z               "line": 514
2026-06-09T03:00:38.5151069Z             },
2026-06-09T03:00:38.5151150Z             {
2026-06-09T03:00:38.5151261Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5151350Z               "line": 563
2026-06-09T03:00:38.5151440Z             },
2026-06-09T03:00:38.5151518Z             {
2026-06-09T03:00:38.5151627Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5151713Z               "line": 666
2026-06-09T03:00:38.5151794Z             },
2026-06-09T03:00:38.5151876Z             {
2026-06-09T03:00:38.5151984Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5152070Z               "line": 698
2026-06-09T03:00:38.5152147Z             },
2026-06-09T03:00:38.5152229Z             {
2026-06-09T03:00:38.5152346Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5152438Z               "line": 766
2026-06-09T03:00:38.5152520Z             },
2026-06-09T03:00:38.5152600Z             {
2026-06-09T03:00:38.5152708Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5152794Z               "line": 824
2026-06-09T03:00:38.5152876Z             },
2026-06-09T03:00:38.5152957Z             {
2026-06-09T03:00:38.5153065Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5153152Z               "line": 1045
2026-06-09T03:00:38.5153233Z             },
2026-06-09T03:00:38.5153313Z             {
2026-06-09T03:00:38.5153428Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5153515Z               "line": 157
2026-06-09T03:00:38.5153596Z             },
2026-06-09T03:00:38.5153681Z             {
2026-06-09T03:00:38.5153801Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5153891Z               "line": 250
2026-06-09T03:00:38.5153981Z             },
2026-06-09T03:00:38.5154063Z             {
2026-06-09T03:00:38.5154177Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T03:00:38.5154263Z               "line": 273
2026-06-09T03:00:38.5154348Z             },
2026-06-09T03:00:38.5154436Z             {
2026-06-09T03:00:38.5154553Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.5154639Z               "line": 341
2026-06-09T03:00:38.5154721Z             },
2026-06-09T03:00:38.5154802Z             {
2026-06-09T03:00:38.5154915Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T03:00:38.5155002Z               "line": 373
2026-06-09T03:00:38.5155085Z             },
2026-06-09T03:00:38.5155169Z             {
2026-06-09T03:00:38.5155291Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-09T03:00:38.5155377Z               "line": 131
2026-06-09T03:00:38.5155458Z             },
2026-06-09T03:00:38.5155537Z             {
2026-06-09T03:00:38.5155819Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T03:00:38.5155909Z               "line": 72
2026-06-09T03:00:38.5155990Z             },
2026-06-09T03:00:38.5156076Z             {
2026-06-09T03:00:38.5156186Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T03:00:38.5156271Z               "line": 97
2026-06-09T03:00:38.5156363Z             },
2026-06-09T03:00:38.5156434Z             {
2026-06-09T03:00:38.5156548Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5156634Z               "line": 379
2026-06-09T03:00:38.5156716Z             },
2026-06-09T03:00:38.5156796Z             {
2026-06-09T03:00:38.5156905Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5157082Z               "line": 417
2026-06-09T03:00:38.5157159Z             },
2026-06-09T03:00:38.5157239Z             {
2026-06-09T03:00:38.5157360Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5157463Z               "line": 433
2026-06-09T03:00:38.5157544Z             },
2026-06-09T03:00:38.5157642Z             {
2026-06-09T03:00:38.5157759Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5157844Z               "line": 472
2026-06-09T03:00:38.5157925Z             },
2026-06-09T03:00:38.5158006Z             {
2026-06-09T03:00:38.5158109Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5158189Z               "line": 489
2026-06-09T03:00:38.5158285Z             },
2026-06-09T03:00:38.5158371Z             {
2026-06-09T03:00:38.5158504Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5158596Z               "line": 517
2026-06-09T03:00:38.5158691Z             },
2026-06-09T03:00:38.5158786Z             {
2026-06-09T03:00:38.5158896Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T03:00:38.5158982Z               "line": 548
2026-06-09T03:00:38.5159067Z             },
2026-06-09T03:00:38.5159153Z             {
2026-06-09T03:00:38.5159287Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5159387Z               "line": 455
2026-06-09T03:00:38.5159472Z             }
2026-06-09T03:00:38.5159559Z           ]
2026-06-09T03:00:38.5159644Z         }
2026-06-09T03:00:38.5159735Z       }
2026-06-09T03:00:38.5159821Z     },
2026-06-09T03:00:38.5159907Z     {
2026-06-09T03:00:38.5160006Z       "id": "REQ-NOTIF-2",
2026-06-09T03:00:38.5160274Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-09T03:00:38.5160368Z       "requiredStages": [
2026-06-09T03:00:38.5160453Z         "doc",
2026-06-09T03:00:38.5160539Z         "impl",
2026-06-09T03:00:38.5160619Z         "unit",
2026-06-09T03:00:38.5160699Z         "int"
2026-06-09T03:00:38.5160785Z       ],
2026-06-09T03:00:38.5160872Z       "stages": {
2026-06-09T03:00:38.5160958Z         "doc": {
2026-06-09T03:00:38.5161052Z           "complete": true,
2026-06-09T03:00:38.5161143Z           "evidence": [
2026-06-09T03:00:38.5161238Z             {
2026-06-09T03:00:38.5161338Z               "path": "CONTEXT.md",
2026-06-09T03:00:38.5161439Z               "line": 346
2026-06-09T03:00:38.5161530Z             },
2026-06-09T03:00:38.5161611Z             {
2026-06-09T03:00:38.5161715Z               "path": "docs/MANIFEST.md",
2026-06-09T03:00:38.5161811Z               "line": 62
2026-06-09T03:00:38.5161896Z             }
2026-06-09T03:00:38.5161986Z           ]
2026-06-09T03:00:38.5162068Z         },
2026-06-09T03:00:38.5162159Z         "impl": {
2026-06-09T03:00:38.5162248Z           "complete": true,
2026-06-09T03:00:38.5162335Z           "evidence": [
2026-06-09T03:00:38.5162426Z             {
2026-06-09T03:00:38.5162540Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5162630Z               "line": 280
2026-06-09T03:00:38.5162717Z             },
2026-06-09T03:00:38.5162794Z             {
2026-06-09T03:00:38.5162911Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5163184Z               "line": 294
2026-06-09T03:00:38.5163268Z             },
2026-06-09T03:00:38.5163354Z             {
2026-06-09T03:00:38.5163465Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5163559Z               "line": 319
2026-06-09T03:00:38.5163630Z             },
2026-06-09T03:00:38.5163717Z             {
2026-06-09T03:00:38.5163837Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.5163921Z               "line": 126
2026-06-09T03:00:38.5163998Z             },
2026-06-09T03:00:38.5164084Z             {
2026-06-09T03:00:38.5164202Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5164293Z               "line": 72
2026-06-09T03:00:38.5164395Z             },
2026-06-09T03:00:38.5164475Z             {
2026-06-09T03:00:38.5164599Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5164681Z               "line": 1449
2026-06-09T03:00:38.5164765Z             },
2026-06-09T03:00:38.5164846Z             {
2026-06-09T03:00:38.5164952Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5165048Z               "line": 1498
2026-06-09T03:00:38.5165128Z             },
2026-06-09T03:00:38.5165219Z             {
2026-06-09T03:00:38.5165325Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5165409Z               "line": 1577
2026-06-09T03:00:38.5165509Z             },
2026-06-09T03:00:38.5165601Z             {
2026-06-09T03:00:38.5165715Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5165804Z               "line": 1616
2026-06-09T03:00:38.5165889Z             }
2026-06-09T03:00:38.5165966Z           ]
2026-06-09T03:00:38.5166051Z         },
2026-06-09T03:00:38.5166164Z         "int": {
2026-06-09T03:00:38.5166279Z           "complete": true,
2026-06-09T03:00:38.5166370Z           "evidence": [
2026-06-09T03:00:38.5166445Z             {
2026-06-09T03:00:38.5166565Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5166660Z               "line": 739
2026-06-09T03:00:38.5166755Z             },
2026-06-09T03:00:38.5166841Z             {
2026-06-09T03:00:38.5167042Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5167132Z               "line": 1159
2026-06-09T03:00:38.5167214Z             }
2026-06-09T03:00:38.5167299Z           ]
2026-06-09T03:00:38.5167371Z         },
2026-06-09T03:00:38.5167456Z         "unit": {
2026-06-09T03:00:38.5167548Z           "complete": true,
2026-06-09T03:00:38.5167637Z           "evidence": [
2026-06-09T03:00:38.5167724Z             {
2026-06-09T03:00:38.5167829Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5167920Z               "line": 894
2026-06-09T03:00:38.5168000Z             },
2026-06-09T03:00:38.5168081Z             {
2026-06-09T03:00:38.5168192Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5168277Z               "line": 962
2026-06-09T03:00:38.5168366Z             },
2026-06-09T03:00:38.5168471Z             {
2026-06-09T03:00:38.5168618Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5168707Z               "line": 5212
2026-06-09T03:00:38.5168793Z             },
2026-06-09T03:00:38.5168875Z             {
2026-06-09T03:00:38.5168979Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5169068Z               "line": 5267
2026-06-09T03:00:38.5169146Z             }
2026-06-09T03:00:38.5169227Z           ]
2026-06-09T03:00:38.5169312Z         }
2026-06-09T03:00:38.5169398Z       }
2026-06-09T03:00:38.5169485Z     },
2026-06-09T03:00:38.5169561Z     {
2026-06-09T03:00:38.5169661Z       "id": "REQ-PAIR-1",
2026-06-09T03:00:38.5169761Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-09T03:00:38.5169857Z       "requiredStages": [
2026-06-09T03:00:38.5169938Z         "impl",
2026-06-09T03:00:38.5170027Z         "unit",
2026-06-09T03:00:38.5170134Z         "int"
2026-06-09T03:00:38.5170242Z       ],
2026-06-09T03:00:38.5170328Z       "stages": {
2026-06-09T03:00:38.5170519Z         "doc": {
2026-06-09T03:00:38.5170710Z           "complete": false,
2026-06-09T03:00:38.5170796Z           "evidence": []
2026-06-09T03:00:38.5170872Z         },
2026-06-09T03:00:38.5170961Z         "impl": {
2026-06-09T03:00:38.5171042Z           "complete": true,
2026-06-09T03:00:38.5171123Z           "evidence": [
2026-06-09T03:00:38.5171222Z             {
2026-06-09T03:00:38.5171384Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.5171480Z               "line": 27
2026-06-09T03:00:38.5171565Z             },
2026-06-09T03:00:38.5171650Z             {
2026-06-09T03:00:38.5171770Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.5171856Z               "line": 88
2026-06-09T03:00:38.5171941Z             },
2026-06-09T03:00:38.5172028Z             {
2026-06-09T03:00:38.5172146Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.5172241Z               "line": 110
2026-06-09T03:00:38.5172338Z             },
2026-06-09T03:00:38.5172424Z             {
2026-06-09T03:00:38.5172551Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.5172638Z               "line": 153
2026-06-09T03:00:38.5172729Z             },
2026-06-09T03:00:38.5172808Z             {
2026-06-09T03:00:38.5172943Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.5173034Z               "line": 182
2026-06-09T03:00:38.5173100Z             },
2026-06-09T03:00:38.5173177Z             {
2026-06-09T03:00:38.5173297Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5173387Z               "line": 29
2026-06-09T03:00:38.5173485Z             },
2026-06-09T03:00:38.5173568Z             {
2026-06-09T03:00:38.5173711Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T03:00:38.5173795Z               "line": 31
2026-06-09T03:00:38.5173881Z             },
2026-06-09T03:00:38.5173967Z             {
2026-06-09T03:00:38.5174101Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5174190Z               "line": 44
2026-06-09T03:00:38.5174272Z             },
2026-06-09T03:00:38.5174358Z             {
2026-06-09T03:00:38.5174472Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5174563Z               "line": 171
2026-06-09T03:00:38.5174645Z             },
2026-06-09T03:00:38.5174730Z             {
2026-06-09T03:00:38.5174853Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5174941Z               "line": 376
2026-06-09T03:00:38.5175020Z             }
2026-06-09T03:00:38.5175106Z           ]
2026-06-09T03:00:38.5175188Z         },
2026-06-09T03:00:38.5175270Z         "int": {
2026-06-09T03:00:38.5175368Z           "complete": true,
2026-06-09T03:00:38.5175459Z           "evidence": [
2026-06-09T03:00:38.5175541Z             {
2026-06-09T03:00:38.5175664Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5175759Z               "line": 574
2026-06-09T03:00:38.5175851Z             },
2026-06-09T03:00:38.5175937Z             {
2026-06-09T03:00:38.5176055Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5176147Z               "line": 791
2026-06-09T03:00:38.5176229Z             }
2026-06-09T03:00:38.5176312Z           ]
2026-06-09T03:00:38.5176393Z         },
2026-06-09T03:00:38.5176479Z         "unit": {
2026-06-09T03:00:38.5176569Z           "complete": true,
2026-06-09T03:00:38.5176667Z           "evidence": [
2026-06-09T03:00:38.5176748Z             {
2026-06-09T03:00:38.5176868Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.5177048Z               "line": 236
2026-06-09T03:00:38.5177120Z             },
2026-06-09T03:00:38.5177206Z             {
2026-06-09T03:00:38.5177329Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T03:00:38.5177420Z               "line": 349
2026-06-09T03:00:38.5177512Z             },
2026-06-09T03:00:38.5177793Z             {
2026-06-09T03:00:38.5177917Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5178007Z               "line": 194
2026-06-09T03:00:38.5178088Z             },
2026-06-09T03:00:38.5178170Z             {
2026-06-09T03:00:38.5178293Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5178389Z               "line": 216
2026-06-09T03:00:38.5178466Z             },
2026-06-09T03:00:38.5178550Z             {
2026-06-09T03:00:38.5178665Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5178752Z               "line": 230
2026-06-09T03:00:38.5178841Z             },
2026-06-09T03:00:38.5178922Z             {
2026-06-09T03:00:38.5179050Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5179135Z               "line": 242
2026-06-09T03:00:38.5179224Z             },
2026-06-09T03:00:38.5179309Z             {
2026-06-09T03:00:38.5179440Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5179534Z               "line": 256
2026-06-09T03:00:38.5179619Z             },
2026-06-09T03:00:38.5179701Z             {
2026-06-09T03:00:38.5179825Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5179915Z               "line": 270
2026-06-09T03:00:38.5179997Z             },
2026-06-09T03:00:38.5180088Z             {
2026-06-09T03:00:38.5180216Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5180302Z               "line": 277
2026-06-09T03:00:38.5180388Z             },
2026-06-09T03:00:38.5180469Z             {
2026-06-09T03:00:38.5180592Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T03:00:38.5180680Z               "line": 295
2026-06-09T03:00:38.5180769Z             },
2026-06-09T03:00:38.5180855Z             {
2026-06-09T03:00:38.5180975Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5181070Z               "line": 968
2026-06-09T03:00:38.5181155Z             },
2026-06-09T03:00:38.5181241Z             {
2026-06-09T03:00:38.5181361Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5181460Z               "line": 1051
2026-06-09T03:00:38.5181545Z             },
2026-06-09T03:00:38.5181627Z             {
2026-06-09T03:00:38.5181744Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5181833Z               "line": 1121
2026-06-09T03:00:38.5181914Z             },
2026-06-09T03:00:38.5181997Z             {
2026-06-09T03:00:38.5182120Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5182210Z               "line": 1182
2026-06-09T03:00:38.5182292Z             },
2026-06-09T03:00:38.5182378Z             {
2026-06-09T03:00:38.5182491Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5182583Z               "line": 1238
2026-06-09T03:00:38.5182669Z             },
2026-06-09T03:00:38.5182768Z             {
2026-06-09T03:00:38.5182888Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5182979Z               "line": 1457
2026-06-09T03:00:38.5183060Z             }
2026-06-09T03:00:38.5183145Z           ]
2026-06-09T03:00:38.5183227Z         }
2026-06-09T03:00:38.5183322Z       }
2026-06-09T03:00:38.5183408Z     },
2026-06-09T03:00:38.5183494Z     {
2026-06-09T03:00:38.5183585Z       "id": "REQ-PAIR-2",
2026-06-09T03:00:38.5183717Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-09T03:00:38.5183813Z       "requiredStages": [],
2026-06-09T03:00:38.5183904Z       "stages": {
2026-06-09T03:00:38.5183994Z         "doc": {
2026-06-09T03:00:38.5184084Z           "complete": false,
2026-06-09T03:00:38.5184181Z           "evidence": []
2026-06-09T03:00:38.5184262Z         },
2026-06-09T03:00:38.5184351Z         "impl": {
2026-06-09T03:00:38.5184436Z           "complete": false,
2026-06-09T03:00:38.5184532Z           "evidence": []
2026-06-09T03:00:38.5184774Z         },
2026-06-09T03:00:38.5184862Z         "int": {
2026-06-09T03:00:38.5184957Z           "complete": false,
2026-06-09T03:00:38.5185046Z           "evidence": []
2026-06-09T03:00:38.5185128Z         },
2026-06-09T03:00:38.5185214Z         "unit": {
2026-06-09T03:00:38.5185305Z           "complete": false,
2026-06-09T03:00:38.5185399Z           "evidence": []
2026-06-09T03:00:38.5185481Z         }
2026-06-09T03:00:38.5185571Z       }
2026-06-09T03:00:38.5185652Z     },
2026-06-09T03:00:38.5185733Z     {
2026-06-09T03:00:38.5185825Z       "id": "REQ-PAIR-3",
2026-06-09T03:00:38.5185967Z       "title": "Fetch current pairing code from any paired node",
2026-06-09T03:00:38.5186057Z       "requiredStages": [
2026-06-09T03:00:38.5186145Z         "impl",
2026-06-09T03:00:38.5186238Z         "unit"
2026-06-09T03:00:38.5186324Z       ],
2026-06-09T03:00:38.5186416Z       "stages": {
2026-06-09T03:00:38.5186502Z         "doc": {
2026-06-09T03:00:38.5186595Z           "complete": false,
2026-06-09T03:00:38.5186702Z           "evidence": []
2026-06-09T03:00:38.5186793Z         },
2026-06-09T03:00:38.5186887Z         "impl": {
2026-06-09T03:00:38.5187067Z           "complete": true,
2026-06-09T03:00:38.5187157Z           "evidence": [
2026-06-09T03:00:38.5187241Z             {
2026-06-09T03:00:38.5187346Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5187433Z               "line": 2000
2026-06-09T03:00:38.5187519Z             },
2026-06-09T03:00:38.5187608Z             {
2026-06-09T03:00:38.5187704Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5187800Z               "line": 2069
2026-06-09T03:00:38.5187880Z             },
2026-06-09T03:00:38.5187966Z             {
2026-06-09T03:00:38.5188063Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5188157Z               "line": 2305
2026-06-09T03:00:38.5188242Z             }
2026-06-09T03:00:38.5188320Z           ]
2026-06-09T03:00:38.5188406Z         },
2026-06-09T03:00:38.5188487Z         "int": {
2026-06-09T03:00:38.5188591Z           "complete": false,
2026-06-09T03:00:38.5188678Z           "evidence": []
2026-06-09T03:00:38.5188762Z         },
2026-06-09T03:00:38.5188867Z         "unit": {
2026-06-09T03:00:38.5188954Z           "complete": true,
2026-06-09T03:00:38.5189045Z           "evidence": [
2026-06-09T03:00:38.5189124Z             {
2026-06-09T03:00:38.5189225Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5189307Z               "line": 6580
2026-06-09T03:00:38.5189420Z             },
2026-06-09T03:00:38.5189524Z             {
2026-06-09T03:00:38.5189620Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5189710Z               "line": 6795
2026-06-09T03:00:38.5189789Z             },
2026-06-09T03:00:38.5189874Z             {
2026-06-09T03:00:38.5189971Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5190062Z               "line": 7302
2026-06-09T03:00:38.5190147Z             },
2026-06-09T03:00:38.5190233Z             {
2026-06-09T03:00:38.5190343Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5190428Z               "line": 7321
2026-06-09T03:00:38.5190509Z             },
2026-06-09T03:00:38.5190596Z             {
2026-06-09T03:00:38.5190695Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5190824Z               "line": 7345
2026-06-09T03:00:38.5190916Z             },
2026-06-09T03:00:38.5191000Z             {
2026-06-09T03:00:38.5191096Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5191187Z               "line": 7364
2026-06-09T03:00:38.5191268Z             },
2026-06-09T03:00:38.5191348Z             {
2026-06-09T03:00:38.5191453Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5191535Z               "line": 7377
2026-06-09T03:00:38.5191621Z             },
2026-06-09T03:00:38.5191706Z             {
2026-06-09T03:00:38.5191806Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5195306Z               "line": 7386
2026-06-09T03:00:38.5195545Z             }
2026-06-09T03:00:38.5195727Z           ]
2026-06-09T03:00:38.5195807Z         }
2026-06-09T03:00:38.5195888Z       }
2026-06-09T03:00:38.5195969Z     },
2026-06-09T03:00:38.5196051Z     {
2026-06-09T03:00:38.5196141Z       "id": "REQ-PAIR-4",
2026-06-09T03:00:38.5196279Z       "title": "Subnet naming on first pairing",
2026-06-09T03:00:38.5196390Z       "requiredStages": [
2026-06-09T03:00:38.5196470Z         "impl",
2026-06-09T03:00:38.5196555Z         "unit"
2026-06-09T03:00:38.5196632Z       ],
2026-06-09T03:00:38.5196723Z       "stages": {
2026-06-09T03:00:38.5196803Z         "doc": {
2026-06-09T03:00:38.5196899Z           "complete": false,
2026-06-09T03:00:38.5197086Z           "evidence": []
2026-06-09T03:00:38.5197165Z         },
2026-06-09T03:00:38.5197248Z         "impl": {
2026-06-09T03:00:38.5197339Z           "complete": true,
2026-06-09T03:00:38.5197452Z           "evidence": [
2026-06-09T03:00:38.5197532Z             {
2026-06-09T03:00:38.5197741Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T03:00:38.5197835Z               "line": 174
2026-06-09T03:00:38.5197916Z             }
2026-06-09T03:00:38.5197998Z           ]
2026-06-09T03:00:38.5198079Z         },
2026-06-09T03:00:38.5198164Z         "int": {
2026-06-09T03:00:38.5198255Z           "complete": false,
2026-06-09T03:00:38.5198341Z           "evidence": []
2026-06-09T03:00:38.5198422Z         },
2026-06-09T03:00:38.5198502Z         "unit": {
2026-06-09T03:00:38.5198599Z           "complete": true,
2026-06-09T03:00:38.5198684Z           "evidence": [
2026-06-09T03:00:38.5198765Z             {
2026-06-09T03:00:38.5198904Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5198999Z               "line": 1294
2026-06-09T03:00:38.5199080Z             }
2026-06-09T03:00:38.5199161Z           ]
2026-06-09T03:00:38.5199243Z         }
2026-06-09T03:00:38.5199323Z       }
2026-06-09T03:00:38.5199404Z     },
2026-06-09T03:00:38.5199490Z     {
2026-06-09T03:00:38.5199591Z       "id": "REQ-PAIR-5",
2026-06-09T03:00:38.5199901Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-09T03:00:38.5199990Z       "requiredStages": [
2026-06-09T03:00:38.5200075Z         "impl",
2026-06-09T03:00:38.5200161Z         "unit",
2026-06-09T03:00:38.5200247Z         "int"
2026-06-09T03:00:38.5200335Z       ],
2026-06-09T03:00:38.5200421Z       "stages": {
2026-06-09T03:00:38.5200506Z         "doc": {
2026-06-09T03:00:38.5200598Z           "complete": false,
2026-06-09T03:00:38.5200683Z           "evidence": []
2026-06-09T03:00:38.5200763Z         },
2026-06-09T03:00:38.5200856Z         "impl": {
2026-06-09T03:00:38.5200951Z           "complete": true,
2026-06-09T03:00:38.5201035Z           "evidence": [
2026-06-09T03:00:38.5201117Z             {
2026-06-09T03:00:38.5201246Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5201331Z               "line": 44
2026-06-09T03:00:38.5201417Z             },
2026-06-09T03:00:38.5201514Z             {
2026-06-09T03:00:38.5201636Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5201717Z               "line": 96
2026-06-09T03:00:38.5201800Z             },
2026-06-09T03:00:38.5201880Z             {
2026-06-09T03:00:38.5202004Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5202090Z               "line": 107
2026-06-09T03:00:38.5202171Z             },
2026-06-09T03:00:38.5202251Z             {
2026-06-09T03:00:38.5202366Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5202454Z               "line": 124
2026-06-09T03:00:38.5202533Z             },
2026-06-09T03:00:38.5202618Z             {
2026-06-09T03:00:38.5202732Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5202817Z               "line": 155
2026-06-09T03:00:38.5202897Z             },
2026-06-09T03:00:38.5202977Z             {
2026-06-09T03:00:38.5203198Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5203369Z               "line": 195
2026-06-09T03:00:38.5203455Z             },
2026-06-09T03:00:38.5203536Z             {
2026-06-09T03:00:38.5203655Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5203741Z               "line": 251
2026-06-09T03:00:38.5203822Z             },
2026-06-09T03:00:38.5203903Z             {
2026-06-09T03:00:38.5204043Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5204127Z               "line": 33
2026-06-09T03:00:38.5204208Z             },
2026-06-09T03:00:38.5204289Z             {
2026-06-09T03:00:38.5204423Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5204508Z               "line": 45
2026-06-09T03:00:38.5204594Z             },
2026-06-09T03:00:38.5204672Z             {
2026-06-09T03:00:38.5204809Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5204909Z               "line": 59
2026-06-09T03:00:38.5204987Z             },
2026-06-09T03:00:38.5205072Z             {
2026-06-09T03:00:38.5205190Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5205277Z               "line": 376
2026-06-09T03:00:38.5205358Z             }
2026-06-09T03:00:38.5205438Z           ]
2026-06-09T03:00:38.5205523Z         },
2026-06-09T03:00:38.5205604Z         "int": {
2026-06-09T03:00:38.5205701Z           "complete": true,
2026-06-09T03:00:38.5205786Z           "evidence": [
2026-06-09T03:00:38.5205875Z             {
2026-06-09T03:00:38.5205996Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5206082Z               "line": 791
2026-06-09T03:00:38.5206166Z             },
2026-06-09T03:00:38.5206248Z             {
2026-06-09T03:00:38.5206368Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5206453Z               "line": 342
2026-06-09T03:00:38.5206534Z             }
2026-06-09T03:00:38.5206630Z           ]
2026-06-09T03:00:38.5206715Z         },
2026-06-09T03:00:38.5206801Z         "unit": {
2026-06-09T03:00:38.5206887Z           "complete": true,
2026-06-09T03:00:38.5207068Z           "evidence": [
2026-06-09T03:00:38.5207144Z             {
2026-06-09T03:00:38.5207279Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5207373Z               "line": 293
2026-06-09T03:00:38.5207454Z             },
2026-06-09T03:00:38.5207537Z             {
2026-06-09T03:00:38.5207650Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5207740Z               "line": 304
2026-06-09T03:00:38.5207822Z             },
2026-06-09T03:00:38.5207909Z             {
2026-06-09T03:00:38.5208030Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5208111Z               "line": 406
2026-06-09T03:00:38.5208197Z             },
2026-06-09T03:00:38.5208278Z             {
2026-06-09T03:00:38.5208419Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5208510Z               "line": 72
2026-06-09T03:00:38.5208600Z             },
2026-06-09T03:00:38.5208681Z             {
2026-06-09T03:00:38.5208810Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5208901Z               "line": 82
2026-06-09T03:00:38.5208977Z             },
2026-06-09T03:00:38.5209057Z             {
2026-06-09T03:00:38.5209197Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5209282Z               "line": 100
2026-06-09T03:00:38.5209367Z             },
2026-06-09T03:00:38.5209445Z             {
2026-06-09T03:00:38.5209577Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5209659Z               "line": 110
2026-06-09T03:00:38.5209740Z             },
2026-06-09T03:00:38.5209817Z             {
2026-06-09T03:00:38.5209950Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T03:00:38.5210244Z               "line": 125
2026-06-09T03:00:38.5210326Z             },
2026-06-09T03:00:38.5210409Z             {
2026-06-09T03:00:38.5210527Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5210621Z               "line": 1044
2026-06-09T03:00:38.5210701Z             },
2026-06-09T03:00:38.5210783Z             {
2026-06-09T03:00:38.5210904Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5210990Z               "line": 1110
2026-06-09T03:00:38.5211071Z             },
2026-06-09T03:00:38.5211153Z             {
2026-06-09T03:00:38.5211276Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5211363Z               "line": 1357
2026-06-09T03:00:38.5211444Z             }
2026-06-09T03:00:38.5211525Z           ]
2026-06-09T03:00:38.5211610Z         }
2026-06-09T03:00:38.5211692Z       }
2026-06-09T03:00:38.5211773Z     },
2026-06-09T03:00:38.5211854Z     {
2026-06-09T03:00:38.5211954Z       "id": "REQ-PAIR-6",
2026-06-09T03:00:38.5212225Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-09T03:00:38.5212326Z       "requiredStages": [
2026-06-09T03:00:38.5212412Z         "impl",
2026-06-09T03:00:38.5212497Z         "unit"
2026-06-09T03:00:38.5212573Z       ],
2026-06-09T03:00:38.5212655Z       "stages": {
2026-06-09T03:00:38.5212741Z         "doc": {
2026-06-09T03:00:38.5212831Z           "complete": false,
2026-06-09T03:00:38.5212917Z           "evidence": []
2026-06-09T03:00:38.5212999Z         },
2026-06-09T03:00:38.5213079Z         "impl": {
2026-06-09T03:00:38.5213169Z           "complete": true,
2026-06-09T03:00:38.5213259Z           "evidence": [
2026-06-09T03:00:38.5213340Z             {
2026-06-09T03:00:38.5213447Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5213538Z               "line": 2069
2026-06-09T03:00:38.5213614Z             },
2026-06-09T03:00:38.5213701Z             {
2026-06-09T03:00:38.5213819Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5213910Z               "line": 2305
2026-06-09T03:00:38.5213996Z             },
2026-06-09T03:00:38.5214082Z             {
2026-06-09T03:00:38.5214195Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.5214278Z               "line": 18
2026-06-09T03:00:38.5214359Z             },
2026-06-09T03:00:38.5214444Z             {
2026-06-09T03:00:38.5214549Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.5214635Z               "line": 49
2026-06-09T03:00:38.5214716Z             },
2026-06-09T03:00:38.5214801Z             {
2026-06-09T03:00:38.5214903Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.5214993Z               "line": 163
2026-06-09T03:00:38.5215068Z             }
2026-06-09T03:00:38.5215154Z           ]
2026-06-09T03:00:38.5215237Z         },
2026-06-09T03:00:38.5215317Z         "int": {
2026-06-09T03:00:38.5215407Z           "complete": false,
2026-06-09T03:00:38.5215513Z           "evidence": []
2026-06-09T03:00:38.5215594Z         },
2026-06-09T03:00:38.5215674Z         "unit": {
2026-06-09T03:00:38.5215770Z           "complete": true,
2026-06-09T03:00:38.5215866Z           "evidence": [
2026-06-09T03:00:38.5215946Z             {
2026-06-09T03:00:38.5216046Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5216131Z               "line": 7399
2026-06-09T03:00:38.5216212Z             },
2026-06-09T03:00:38.5216294Z             {
2026-06-09T03:00:38.5216393Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5216484Z               "line": 7416
2026-06-09T03:00:38.5216566Z             },
2026-06-09T03:00:38.5216656Z             {
2026-06-09T03:00:38.5216755Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.5216842Z               "line": 228
2026-06-09T03:00:38.5216923Z             },
2026-06-09T03:00:38.5217104Z             {
2026-06-09T03:00:38.5217209Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T03:00:38.5217614Z               "line": 237
2026-06-09T03:00:38.5217699Z             }
2026-06-09T03:00:38.5217782Z           ]
2026-06-09T03:00:38.5217867Z         }
2026-06-09T03:00:38.5217942Z       }
2026-06-09T03:00:38.5218029Z     },
2026-06-09T03:00:38.5218111Z     {
2026-06-09T03:00:38.5218206Z       "id": "REQ-PAIR-7",
2026-06-09T03:00:38.5218358Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-09T03:00:38.5218454Z       "requiredStages": [],
2026-06-09T03:00:38.5218543Z       "stages": {
2026-06-09T03:00:38.5218624Z         "doc": {
2026-06-09T03:00:38.5218719Z           "complete": false,
2026-06-09T03:00:38.5218810Z           "evidence": []
2026-06-09T03:00:38.5218889Z         },
2026-06-09T03:00:38.5218974Z         "impl": {
2026-06-09T03:00:38.5219060Z           "complete": false,
2026-06-09T03:00:38.5219151Z           "evidence": []
2026-06-09T03:00:38.5219232Z         },
2026-06-09T03:00:38.5219317Z         "int": {
2026-06-09T03:00:38.5219414Z           "complete": false,
2026-06-09T03:00:38.5219504Z           "evidence": []
2026-06-09T03:00:38.5219589Z         },
2026-06-09T03:00:38.5219670Z         "unit": {
2026-06-09T03:00:38.5219762Z           "complete": false,
2026-06-09T03:00:38.5219842Z           "evidence": []
2026-06-09T03:00:38.5219927Z         }
2026-06-09T03:00:38.5220015Z       }
2026-06-09T03:00:38.5220095Z     },
2026-06-09T03:00:38.5220176Z     {
2026-06-09T03:00:38.5220266Z       "id": "REQ-PAIR-8",
2026-06-09T03:00:38.5221603Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-09T03:00:38.5221699Z       "requiredStages": [
2026-06-09T03:00:38.5221789Z         "impl",
2026-06-09T03:00:38.5221874Z         "unit"
2026-06-09T03:00:38.5221951Z       ],
2026-06-09T03:00:38.5222032Z       "stages": {
2026-06-09T03:00:38.5222113Z         "doc": {
2026-06-09T03:00:38.5222199Z           "complete": false,
2026-06-09T03:00:38.5222281Z           "evidence": []
2026-06-09T03:00:38.5222356Z         },
2026-06-09T03:00:38.5222447Z         "impl": {
2026-06-09T03:00:38.5222542Z           "complete": true,
2026-06-09T03:00:38.5222644Z           "evidence": [
2026-06-09T03:00:38.5222729Z             {
2026-06-09T03:00:38.5222857Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5222949Z               "line": 577
2026-06-09T03:00:38.5223028Z             },
2026-06-09T03:00:38.5223109Z             {
2026-06-09T03:00:38.5223235Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T03:00:38.5223325Z               "line": 22
2026-06-09T03:00:38.5223406Z             },
2026-06-09T03:00:38.5223487Z             {
2026-06-09T03:00:38.5223626Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T03:00:38.5223710Z               "line": 76
2026-06-09T03:00:38.5223790Z             },
2026-06-09T03:00:38.5223872Z             {
2026-06-09T03:00:38.5223998Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T03:00:38.5224084Z               "line": 127
2026-06-09T03:00:38.5224165Z             }
2026-06-09T03:00:38.5224242Z           ]
2026-06-09T03:00:38.5224323Z         },
2026-06-09T03:00:38.5224403Z         "int": {
2026-06-09T03:00:38.5224489Z           "complete": false,
2026-06-09T03:00:38.5224580Z           "evidence": []
2026-06-09T03:00:38.5224661Z         },
2026-06-09T03:00:38.5224742Z         "unit": {
2026-06-09T03:00:38.5224833Z           "complete": true,
2026-06-09T03:00:38.5224914Z           "evidence": [
2026-06-09T03:00:38.5224994Z             {
2026-06-09T03:00:38.5225109Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T03:00:38.5225196Z               "line": 183
2026-06-09T03:00:38.5225424Z             },
2026-06-09T03:00:38.5225511Z             {
2026-06-09T03:00:38.5225633Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T03:00:38.5225715Z               "line": 195
2026-06-09T03:00:38.5225797Z             },
2026-06-09T03:00:38.5225877Z             {
2026-06-09T03:00:38.5225996Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T03:00:38.5226083Z               "line": 211
2026-06-09T03:00:38.5226164Z             },
2026-06-09T03:00:38.5226248Z             {
2026-06-09T03:00:38.5226358Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T03:00:38.5226446Z               "line": 227
2026-06-09T03:00:38.5226526Z             }
2026-06-09T03:00:38.5226606Z           ]
2026-06-09T03:00:38.5226691Z         }
2026-06-09T03:00:38.5226773Z       }
2026-06-09T03:00:38.5226854Z     },
2026-06-09T03:00:38.5226934Z     {
2026-06-09T03:00:38.5227111Z       "id": "REQ-PRES-1",
2026-06-09T03:00:38.5228451Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-09T03:00:38.5228551Z       "requiredStages": [
2026-06-09T03:00:38.5228637Z         "impl",
2026-06-09T03:00:38.5228718Z         "unit",
2026-06-09T03:00:38.5228803Z         "int"
2026-06-09T03:00:38.5228880Z       ],
2026-06-09T03:00:38.5228962Z       "stages": {
2026-06-09T03:00:38.5229052Z         "doc": {
2026-06-09T03:00:38.5229146Z           "complete": true,
2026-06-09T03:00:38.5229241Z           "evidence": [
2026-06-09T03:00:38.5229323Z             {
2026-06-09T03:00:38.5229426Z               "path": "docs/DEFERRED.md",
2026-06-09T03:00:38.5229524Z               "line": 11
2026-06-09T03:00:38.5229616Z             }
2026-06-09T03:00:38.5229693Z           ]
2026-06-09T03:00:38.5229773Z         },
2026-06-09T03:00:38.5229862Z         "impl": {
2026-06-09T03:00:38.5229955Z           "complete": true,
2026-06-09T03:00:38.5230041Z           "evidence": [
2026-06-09T03:00:38.5230121Z             {
2026-06-09T03:00:38.5230240Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5230326Z               "line": 515
2026-06-09T03:00:38.5230417Z             },
2026-06-09T03:00:38.5230502Z             {
2026-06-09T03:00:38.5230622Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5230708Z               "line": 567
2026-06-09T03:00:38.5230793Z             },
2026-06-09T03:00:38.5230874Z             {
2026-06-09T03:00:38.5230994Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5231085Z               "line": 181
2026-06-09T03:00:38.5231180Z             },
2026-06-09T03:00:38.5231257Z             {
2026-06-09T03:00:38.5231379Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5231465Z               "line": 207
2026-06-09T03:00:38.5231553Z             },
2026-06-09T03:00:38.5231633Z             {
2026-06-09T03:00:38.5231755Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5231841Z               "line": 28
2026-06-09T03:00:38.5231922Z             },
2026-06-09T03:00:38.5232006Z             {
2026-06-09T03:00:38.5232120Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5232211Z               "line": 105
2026-06-09T03:00:38.5232297Z             },
2026-06-09T03:00:38.5232382Z             {
2026-06-09T03:00:38.5232497Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5232583Z               "line": 161
2026-06-09T03:00:38.5232664Z             },
2026-06-09T03:00:38.5232744Z             {
2026-06-09T03:00:38.5232860Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5233151Z               "line": 180
2026-06-09T03:00:38.5233236Z             },
2026-06-09T03:00:38.5233317Z             {
2026-06-09T03:00:38.5233442Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5233533Z               "line": 399
2026-06-09T03:00:38.5233612Z             },
2026-06-09T03:00:38.5233693Z             {
2026-06-09T03:00:38.5233819Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5233903Z               "line": 289
2026-06-09T03:00:38.5233985Z             },
2026-06-09T03:00:38.5234071Z             {
2026-06-09T03:00:38.5234191Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5234274Z               "line": 336
2026-06-09T03:00:38.5234360Z             },
2026-06-09T03:00:38.5234441Z             {
2026-06-09T03:00:38.5234554Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5234644Z               "line": 362
2026-06-09T03:00:38.5234725Z             },
2026-06-09T03:00:38.5234831Z             {
2026-06-09T03:00:38.5234944Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5235030Z               "line": 100
2026-06-09T03:00:38.5235112Z             }
2026-06-09T03:00:38.5235193Z           ]
2026-06-09T03:00:38.5235273Z         },
2026-06-09T03:00:38.5235355Z         "int": {
2026-06-09T03:00:38.5235446Z           "complete": true,
2026-06-09T03:00:38.5235532Z           "evidence": [
2026-06-09T03:00:38.5235621Z             {
2026-06-09T03:00:38.5235742Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5235826Z               "line": 556
2026-06-09T03:00:38.5235912Z             },
2026-06-09T03:00:38.5235994Z             {
2026-06-09T03:00:38.5236117Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5236203Z               "line": 676
2026-06-09T03:00:38.5236289Z             },
2026-06-09T03:00:38.5236376Z             {
2026-06-09T03:00:38.5236494Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5236590Z               "line": 1069
2026-06-09T03:00:38.5236672Z             }
2026-06-09T03:00:38.5236757Z           ]
2026-06-09T03:00:38.5236837Z         },
2026-06-09T03:00:38.5236923Z         "unit": {
2026-06-09T03:00:38.5237104Z           "complete": true,
2026-06-09T03:00:38.5237199Z           "evidence": [
2026-06-09T03:00:38.5237299Z             {
2026-06-09T03:00:38.5237409Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5237518Z               "line": 601
2026-06-09T03:00:38.5237609Z             },
2026-06-09T03:00:38.5237709Z             {
2026-06-09T03:00:38.5237823Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5237909Z               "line": 237
2026-06-09T03:00:38.5237996Z             },
2026-06-09T03:00:38.5238072Z             {
2026-06-09T03:00:38.5238190Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5238273Z               "line": 268
2026-06-09T03:00:38.5238372Z             },
2026-06-09T03:00:38.5238457Z             {
2026-06-09T03:00:38.5238568Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5238658Z               "line": 304
2026-06-09T03:00:38.5238734Z             },
2026-06-09T03:00:38.5238815Z             {
2026-06-09T03:00:38.5238931Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T03:00:38.5239015Z               "line": 335
2026-06-09T03:00:38.5239101Z             },
2026-06-09T03:00:38.5239178Z             {
2026-06-09T03:00:38.5239302Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5239392Z               "line": 1135
2026-06-09T03:00:38.5239478Z             },
2026-06-09T03:00:38.5239566Z             {
2026-06-09T03:00:38.5239677Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5239777Z               "line": 1112
2026-06-09T03:00:38.5239863Z             }
2026-06-09T03:00:38.5239948Z           ]
2026-06-09T03:00:38.5240127Z         }
2026-06-09T03:00:38.5240319Z       }
2026-06-09T03:00:38.5240404Z     },
2026-06-09T03:00:38.5240490Z     {
2026-06-09T03:00:38.5240581Z       "id": "REQ-REACH-1",
2026-06-09T03:00:38.5240724Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-09T03:00:38.5240815Z       "requiredStages": [
2026-06-09T03:00:38.5240901Z         "impl",
2026-06-09T03:00:38.5240981Z         "unit",
2026-06-09T03:00:38.5241067Z         "int"
2026-06-09T03:00:38.5241150Z       ],
2026-06-09T03:00:38.5241235Z       "stages": {
2026-06-09T03:00:38.5241315Z         "doc": {
2026-06-09T03:00:38.5241421Z           "complete": false,
2026-06-09T03:00:38.5241507Z           "evidence": []
2026-06-09T03:00:38.5241592Z         },
2026-06-09T03:00:38.5241678Z         "impl": {
2026-06-09T03:00:38.5241769Z           "complete": true,
2026-06-09T03:00:38.5241859Z           "evidence": [
2026-06-09T03:00:38.5241940Z             {
2026-06-09T03:00:38.5242050Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T03:00:38.5242151Z               "line": 140
2026-06-09T03:00:38.5242235Z             },
2026-06-09T03:00:38.5242320Z             {
2026-06-09T03:00:38.5242430Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T03:00:38.5242520Z               "line": 76
2026-06-09T03:00:38.5242600Z             },
2026-06-09T03:00:38.5242685Z             {
2026-06-09T03:00:38.5242791Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T03:00:38.5242881Z               "line": 222
2026-06-09T03:00:38.5242966Z             },
2026-06-09T03:00:38.5243048Z             {
2026-06-09T03:00:38.5243158Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T03:00:38.5243238Z               "line": 422
2026-06-09T03:00:38.5243319Z             },
2026-06-09T03:00:38.5243401Z             {
2026-06-09T03:00:38.5243510Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T03:00:38.5243600Z               "line": 529
2026-06-09T03:00:38.5243687Z             },
2026-06-09T03:00:38.5243820Z             {
2026-06-09T03:00:38.5243944Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T03:00:38.5244031Z               "line": 39
2026-06-09T03:00:38.5244116Z             },
2026-06-09T03:00:38.5244202Z             {
2026-06-09T03:00:38.5244306Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.5244398Z               "line": 229
2026-06-09T03:00:38.5244482Z             },
2026-06-09T03:00:38.5244568Z             {
2026-06-09T03:00:38.5244675Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T03:00:38.5244760Z               "line": 88
2026-06-09T03:00:38.5244849Z             },
2026-06-09T03:00:38.5244939Z             {
2026-06-09T03:00:38.5245040Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T03:00:38.5245128Z               "line": 98
2026-06-09T03:00:38.5245209Z             },
2026-06-09T03:00:38.5245290Z             {
2026-06-09T03:00:38.5245406Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5245504Z               "line": 210
2026-06-09T03:00:38.5245590Z             }
2026-06-09T03:00:38.5245673Z           ]
2026-06-09T03:00:38.5245754Z         },
2026-06-09T03:00:38.5245837Z         "int": {
2026-06-09T03:00:38.5245934Z           "complete": true,
2026-06-09T03:00:38.5246020Z           "evidence": [
2026-06-09T03:00:38.5246101Z             {
2026-06-09T03:00:38.5246224Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5246311Z               "line": 414
2026-06-09T03:00:38.5246391Z             },
2026-06-09T03:00:38.5246477Z             {
2026-06-09T03:00:38.5246597Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5246682Z               "line": 513
2026-06-09T03:00:38.5246768Z             },
2026-06-09T03:00:38.5246854Z             {
2026-06-09T03:00:38.5247049Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5247140Z               "line": 902
2026-06-09T03:00:38.5247222Z             },
2026-06-09T03:00:38.5247623Z             {
2026-06-09T03:00:38.5247744Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5247830Z               "line": 1197
2026-06-09T03:00:38.5247912Z             }
2026-06-09T03:00:38.5248003Z           ]
2026-06-09T03:00:38.5248083Z         },
2026-06-09T03:00:38.5248165Z         "unit": {
2026-06-09T03:00:38.5248255Z           "complete": true,
2026-06-09T03:00:38.5248345Z           "evidence": [
2026-06-09T03:00:38.5248431Z             {
2026-06-09T03:00:38.5248542Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T03:00:38.5248632Z               "line": 639
2026-06-09T03:00:38.5248717Z             },
2026-06-09T03:00:38.5248799Z             {
2026-06-09T03:00:38.5248917Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T03:00:38.5249003Z               "line": 660
2026-06-09T03:00:38.5249084Z             },
2026-06-09T03:00:38.5249171Z             {
2026-06-09T03:00:38.5249294Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T03:00:38.5249390Z               "line": 391
2026-06-09T03:00:38.5249472Z             },
2026-06-09T03:00:38.5249561Z             {
2026-06-09T03:00:38.5249676Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-09T03:00:38.5249763Z               "line": 93
2026-06-09T03:00:38.5249848Z             },
2026-06-09T03:00:38.5249928Z             {
2026-06-09T03:00:38.5250043Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-09T03:00:38.5250130Z               "line": 224
2026-06-09T03:00:38.5250215Z             },
2026-06-09T03:00:38.5250300Z             {
2026-06-09T03:00:38.5250404Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T03:00:38.5250504Z               "line": 96
2026-06-09T03:00:38.5250583Z             },
2026-06-09T03:00:38.5250668Z             {
2026-06-09T03:00:38.5250775Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T03:00:38.5250865Z               "line": 146
2026-06-09T03:00:38.5250950Z             },
2026-06-09T03:00:38.5251046Z             {
2026-06-09T03:00:38.5251156Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.5251241Z               "line": 502
2026-06-09T03:00:38.5251322Z             },
2026-06-09T03:00:38.5251414Z             {
2026-06-09T03:00:38.5251551Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T03:00:38.5251636Z               "line": 118
2026-06-09T03:00:38.5251719Z             },
2026-06-09T03:00:38.5251799Z             {
2026-06-09T03:00:38.5251899Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T03:00:38.5251990Z               "line": 148
2026-06-09T03:00:38.5252076Z             },
2026-06-09T03:00:38.5252185Z             {
2026-06-09T03:00:38.5252295Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5252382Z               "line": 602
2026-06-09T03:00:38.5252481Z             }
2026-06-09T03:00:38.5252562Z           ]
2026-06-09T03:00:38.5252649Z         }
2026-06-09T03:00:38.5252730Z       }
2026-06-09T03:00:38.5252824Z     },
2026-06-09T03:00:38.5252918Z     {
2026-06-09T03:00:38.5253047Z       "id": "REQ-REACH-2",
2026-06-09T03:00:38.5253235Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-09T03:00:38.5253331Z       "requiredStages": [],
2026-06-09T03:00:38.5253422Z       "stages": {
2026-06-09T03:00:38.5253507Z         "doc": {
2026-06-09T03:00:38.5253603Z           "complete": false,
2026-06-09T03:00:38.5253694Z           "evidence": []
2026-06-09T03:00:38.5253775Z         },
2026-06-09T03:00:38.5253864Z         "impl": {
2026-06-09T03:00:38.5253961Z           "complete": false,
2026-06-09T03:00:38.5254056Z           "evidence": []
2026-06-09T03:00:38.5254137Z         },
2026-06-09T03:00:38.5254213Z         "int": {
2026-06-09T03:00:38.5254304Z           "complete": false,
2026-06-09T03:00:38.5254394Z           "evidence": []
2026-06-09T03:00:38.5254475Z         },
2026-06-09T03:00:38.5254557Z         "unit": {
2026-06-09T03:00:38.5254657Z           "complete": false,
2026-06-09T03:00:38.5254948Z           "evidence": []
2026-06-09T03:00:38.5255033Z         }
2026-06-09T03:00:38.5255119Z       }
2026-06-09T03:00:38.5255196Z     },
2026-06-09T03:00:38.5255282Z     {
2026-06-09T03:00:38.5255371Z       "id": "REQ-REL-1",
2026-06-09T03:00:38.5255735Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-09T03:00:38.5255830Z       "requiredStages": [
2026-06-09T03:00:38.5255903Z         "doc",
2026-06-09T03:00:38.5255989Z         "impl"
2026-06-09T03:00:38.5256069Z       ],
2026-06-09T03:00:38.5256155Z       "stages": {
2026-06-09T03:00:38.5256237Z         "doc": {
2026-06-09T03:00:38.5256332Z           "complete": true,
2026-06-09T03:00:38.5256422Z           "evidence": [
2026-06-09T03:00:38.5256504Z             {
2026-06-09T03:00:38.5256732Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-09T03:00:38.5256824Z               "line": 3
2026-06-09T03:00:38.5256914Z             }
2026-06-09T03:00:38.5257080Z           ]
2026-06-09T03:00:38.5257157Z         },
2026-06-09T03:00:38.5257238Z         "impl": {
2026-06-09T03:00:38.5257347Z           "complete": true,
2026-06-09T03:00:38.5257449Z           "evidence": [
2026-06-09T03:00:38.5257534Z             {
2026-06-09T03:00:38.5257676Z               "path": ".github/workflows/docs-publish.yml",
2026-06-09T03:00:38.5257768Z               "line": 11
2026-06-09T03:00:38.5257854Z             },
2026-06-09T03:00:38.5257933Z             {
2026-06-09T03:00:38.5258049Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5258140Z               "line": 265
2026-06-09T03:00:38.5258220Z             }
2026-06-09T03:00:38.5258304Z           ]
2026-06-09T03:00:38.5258385Z         },
2026-06-09T03:00:38.5258473Z         "int": {
2026-06-09T03:00:38.5258563Z           "complete": false,
2026-06-09T03:00:38.5258653Z           "evidence": []
2026-06-09T03:00:38.5258734Z         },
2026-06-09T03:00:38.5258834Z         "unit": {
2026-06-09T03:00:38.5258924Z           "complete": false,
2026-06-09T03:00:38.5259015Z           "evidence": []
2026-06-09T03:00:38.5259097Z         }
2026-06-09T03:00:38.5259178Z       }
2026-06-09T03:00:38.5259258Z     },
2026-06-09T03:00:38.5259344Z     {
2026-06-09T03:00:38.5259431Z       "id": "REQ-REL-2",
2026-06-09T03:00:38.5259892Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-09T03:00:38.5259983Z       "requiredStages": [
2026-06-09T03:00:38.5260070Z         "impl",
2026-06-09T03:00:38.5260164Z         "int"
2026-06-09T03:00:38.5260245Z       ],
2026-06-09T03:00:38.5260337Z       "stages": {
2026-06-09T03:00:38.5260418Z         "doc": {
2026-06-09T03:00:38.5260507Z           "complete": true,
2026-06-09T03:00:38.5260594Z           "evidence": [
2026-06-09T03:00:38.5260681Z             {
2026-06-09T03:00:38.5260807Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-09T03:00:38.5263190Z               "line": 6
2026-06-09T03:00:38.5263294Z             }
2026-06-09T03:00:38.5263379Z           ]
2026-06-09T03:00:38.5263464Z         },
2026-06-09T03:00:38.5263555Z         "impl": {
2026-06-09T03:00:38.5263649Z           "complete": true,
2026-06-09T03:00:38.5263739Z           "evidence": [
2026-06-09T03:00:38.5263829Z             {
2026-06-09T03:00:38.5263954Z               "path": ".github/workflows/release.yml",
2026-06-09T03:00:38.5264044Z               "line": 16
2026-06-09T03:00:38.5264124Z             },
2026-06-09T03:00:38.5264202Z             {
2026-06-09T03:00:38.5264321Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5264406Z               "line": 352
2026-06-09T03:00:38.5264487Z             },
2026-06-09T03:00:38.5264573Z             {
2026-06-09T03:00:38.5264678Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5264768Z               "line": 424
2026-06-09T03:00:38.5265078Z             },
2026-06-09T03:00:38.5265165Z             {
2026-06-09T03:00:38.5265274Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5265360Z               "line": 484
2026-06-09T03:00:38.5265446Z             },
2026-06-09T03:00:38.5265523Z             {
2026-06-09T03:00:38.5265631Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5265717Z               "line": 591
2026-06-09T03:00:38.5265800Z             }
2026-06-09T03:00:38.5265885Z           ]
2026-06-09T03:00:38.5265969Z         },
2026-06-09T03:00:38.5266059Z         "int": {
2026-06-09T03:00:38.5266150Z           "complete": true,
2026-06-09T03:00:38.5266234Z           "evidence": [
2026-06-09T03:00:38.5266314Z             {
2026-06-09T03:00:38.5266448Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-09T03:00:38.5266535Z               "line": 13
2026-06-09T03:00:38.5266615Z             }
2026-06-09T03:00:38.5266701Z           ]
2026-06-09T03:00:38.5266793Z         },
2026-06-09T03:00:38.5266883Z         "unit": {
2026-06-09T03:00:38.5267069Z           "complete": false,
2026-06-09T03:00:38.5267159Z           "evidence": []
2026-06-09T03:00:38.5267240Z         }
2026-06-09T03:00:38.5267321Z       }
2026-06-09T03:00:38.5267417Z     },
2026-06-09T03:00:38.5267507Z     {
2026-06-09T03:00:38.5267597Z       "id": "REQ-REL-3",
2026-06-09T03:00:38.5268028Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-09T03:00:38.5268123Z       "requiredStages": [
2026-06-09T03:00:38.5268208Z         "impl",
2026-06-09T03:00:38.5268289Z         "unit"
2026-06-09T03:00:38.5268371Z       ],
2026-06-09T03:00:38.5268456Z       "stages": {
2026-06-09T03:00:38.5268541Z         "doc": {
2026-06-09T03:00:38.5268633Z           "complete": false,
2026-06-09T03:00:38.5268724Z           "evidence": []
2026-06-09T03:00:38.5268803Z         },
2026-06-09T03:00:38.5268898Z         "impl": {
2026-06-09T03:00:38.5268989Z           "complete": true,
2026-06-09T03:00:38.5269075Z           "evidence": [
2026-06-09T03:00:38.5269156Z             {
2026-06-09T03:00:38.5269275Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5269394Z               "line": 224
2026-06-09T03:00:38.5269480Z             },
2026-06-09T03:00:38.5269561Z             {
2026-06-09T03:00:38.5269676Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5269762Z               "line": 276
2026-06-09T03:00:38.5269842Z             },
2026-06-09T03:00:38.5269919Z             {
2026-06-09T03:00:38.5270066Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5270176Z               "line": 329
2026-06-09T03:00:38.5270258Z             },
2026-06-09T03:00:38.5270339Z             {
2026-06-09T03:00:38.5270457Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5270568Z               "line": 353
2026-06-09T03:00:38.5270649Z             },
2026-06-09T03:00:38.5270733Z             {
2026-06-09T03:00:38.5270834Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5270921Z               "line": 392
2026-06-09T03:00:38.5271001Z             }
2026-06-09T03:00:38.5271081Z           ]
2026-06-09T03:00:38.5271164Z         },
2026-06-09T03:00:38.5271246Z         "int": {
2026-06-09T03:00:38.5271340Z           "complete": false,
2026-06-09T03:00:38.5271434Z           "evidence": []
2026-06-09T03:00:38.5271520Z         },
2026-06-09T03:00:38.5271601Z         "unit": {
2026-06-09T03:00:38.5271689Z           "complete": true,
2026-06-09T03:00:38.5271775Z           "evidence": [
2026-06-09T03:00:38.5271856Z             {
2026-06-09T03:00:38.5271971Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5272061Z               "line": 977
2026-06-09T03:00:38.5272142Z             },
2026-06-09T03:00:38.5272224Z             {
2026-06-09T03:00:38.5272333Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5272633Z               "line": 1036
2026-06-09T03:00:38.5272719Z             }
2026-06-09T03:00:38.5272806Z           ]
2026-06-09T03:00:38.5272887Z         }
2026-06-09T03:00:38.5272968Z       }
2026-06-09T03:00:38.5273048Z     },
2026-06-09T03:00:38.5273130Z     {
2026-06-09T03:00:38.5273234Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-09T03:00:38.5273410Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-09T03:00:38.5273502Z       "requiredStages": [
2026-06-09T03:00:38.5273586Z         "impl",
2026-06-09T03:00:38.5273663Z         "unit"
2026-06-09T03:00:38.5273735Z       ],
2026-06-09T03:00:38.5273813Z       "stages": {
2026-06-09T03:00:38.5273896Z         "doc": {
2026-06-09T03:00:38.5273982Z           "complete": false,
2026-06-09T03:00:38.5274086Z           "evidence": []
2026-06-09T03:00:38.5274186Z         },
2026-06-09T03:00:38.5274265Z         "impl": {
2026-06-09T03:00:38.5274360Z           "complete": true,
2026-06-09T03:00:38.5274457Z           "evidence": [
2026-06-09T03:00:38.5274547Z             {
2026-06-09T03:00:38.5274661Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5274747Z               "line": 18
2026-06-09T03:00:38.5274828Z             },
2026-06-09T03:00:38.5274909Z             {
2026-06-09T03:00:38.5275019Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5275101Z               "line": 35
2026-06-09T03:00:38.5275181Z             },
2026-06-09T03:00:38.5275262Z             {
2026-06-09T03:00:38.5275372Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5275458Z               "line": 72
2026-06-09T03:00:38.5275534Z             }
2026-06-09T03:00:38.5275619Z           ]
2026-06-09T03:00:38.5275697Z         },
2026-06-09T03:00:38.5275782Z         "int": {
2026-06-09T03:00:38.5275872Z           "complete": false,
2026-06-09T03:00:38.5275963Z           "evidence": []
2026-06-09T03:00:38.5276045Z         },
2026-06-09T03:00:38.5276130Z         "unit": {
2026-06-09T03:00:38.5276230Z           "complete": true,
2026-06-09T03:00:38.5276312Z           "evidence": [
2026-06-09T03:00:38.5276397Z             {
2026-06-09T03:00:38.5276501Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5276591Z               "line": 214
2026-06-09T03:00:38.5276668Z             },
2026-06-09T03:00:38.5276752Z             {
2026-06-09T03:00:38.5276861Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5277043Z               "line": 231
2026-06-09T03:00:38.5277133Z             },
2026-06-09T03:00:38.5277208Z             {
2026-06-09T03:00:38.5277319Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5277405Z               "line": 240
2026-06-09T03:00:38.5277485Z             }
2026-06-09T03:00:38.5277566Z           ]
2026-06-09T03:00:38.5277643Z         }
2026-06-09T03:00:38.5277724Z       }
2026-06-09T03:00:38.5277805Z     },
2026-06-09T03:00:38.5277890Z     {
2026-06-09T03:00:38.5277996Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-09T03:00:38.5278143Z       "title": "Hostable endpoint-types capability declaration",
2026-06-09T03:00:38.5278234Z       "requiredStages": [
2026-06-09T03:00:38.5278320Z         "impl",
2026-06-09T03:00:38.5278405Z         "unit"
2026-06-09T03:00:38.5278486Z       ],
2026-06-09T03:00:38.5278574Z       "stages": {
2026-06-09T03:00:38.5278659Z         "doc": {
2026-06-09T03:00:38.5278748Z           "complete": false,
2026-06-09T03:00:38.5278839Z           "evidence": []
2026-06-09T03:00:38.5278922Z         },
2026-06-09T03:00:38.5279002Z         "impl": {
2026-06-09T03:00:38.5279096Z           "complete": true,
2026-06-09T03:00:38.5279188Z           "evidence": [
2026-06-09T03:00:38.5279270Z             {
2026-06-09T03:00:38.5279392Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5279477Z               "line": 404
2026-06-09T03:00:38.5279563Z             }
2026-06-09T03:00:38.5279644Z           ]
2026-06-09T03:00:38.5279725Z         },
2026-06-09T03:00:38.5279993Z         "int": {
2026-06-09T03:00:38.5280092Z           "complete": false,
2026-06-09T03:00:38.5280179Z           "evidence": []
2026-06-09T03:00:38.5280260Z         },
2026-06-09T03:00:38.5280350Z         "unit": {
2026-06-09T03:00:38.5280440Z           "complete": true,
2026-06-09T03:00:38.5280527Z           "evidence": [
2026-06-09T03:00:38.5280608Z             {
2026-06-09T03:00:38.5280726Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5280813Z               "line": 641
2026-06-09T03:00:38.5280895Z             }
2026-06-09T03:00:38.5280979Z           ]
2026-06-09T03:00:38.5281065Z         }
2026-06-09T03:00:38.5281143Z       }
2026-06-09T03:00:38.5281228Z     },
2026-06-09T03:00:38.5281308Z     {
2026-06-09T03:00:38.5281404Z       "id": "REQ-SEAM-HISTORY",
2026-06-09T03:00:38.5281580Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-09T03:00:38.5281671Z       "requiredStages": [
2026-06-09T03:00:38.5281758Z         "impl",
2026-06-09T03:00:38.5281848Z         "unit",
2026-06-09T03:00:38.5281937Z         "int"
2026-06-09T03:00:38.5282018Z       ],
2026-06-09T03:00:38.5282099Z       "stages": {
2026-06-09T03:00:38.5282185Z         "doc": {
2026-06-09T03:00:38.5282273Z           "complete": false,
2026-06-09T03:00:38.5282363Z           "evidence": []
2026-06-09T03:00:38.5282440Z         },
2026-06-09T03:00:38.5282526Z         "impl": {
2026-06-09T03:00:38.5282616Z           "complete": true,
2026-06-09T03:00:38.5282697Z           "evidence": [
2026-06-09T03:00:38.5282780Z             {
2026-06-09T03:00:38.5282889Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T03:00:38.5282974Z               "line": 24
2026-06-09T03:00:38.5283056Z             },
2026-06-09T03:00:38.5283141Z             {
2026-06-09T03:00:38.5283255Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T03:00:38.5283341Z               "line": 22
2026-06-09T03:00:38.5283423Z             }
2026-06-09T03:00:38.5283503Z           ]
2026-06-09T03:00:38.5283598Z         },
2026-06-09T03:00:38.5283685Z         "int": {
2026-06-09T03:00:38.5283776Z           "complete": true,
2026-06-09T03:00:38.5283861Z           "evidence": [
2026-06-09T03:00:38.5283942Z             {
2026-06-09T03:00:38.5284058Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.5284142Z               "line": 256
2026-06-09T03:00:38.5284228Z             }
2026-06-09T03:00:38.5284305Z           ]
2026-06-09T03:00:38.5284387Z         },
2026-06-09T03:00:38.5284471Z         "unit": {
2026-06-09T03:00:38.5284561Z           "complete": true,
2026-06-09T03:00:38.5284647Z           "evidence": [
2026-06-09T03:00:38.5284728Z             {
2026-06-09T03:00:38.5284840Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T03:00:38.5284925Z               "line": 167
2026-06-09T03:00:38.5285007Z             },
2026-06-09T03:00:38.5285079Z             {
2026-06-09T03:00:38.5285183Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T03:00:38.5285269Z               "line": 196
2026-06-09T03:00:38.5285351Z             },
2026-06-09T03:00:38.5285422Z             {
2026-06-09T03:00:38.5285516Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T03:00:38.5285603Z               "line": 216
2026-06-09T03:00:38.5285684Z             },
2026-06-09T03:00:38.5285765Z             {
2026-06-09T03:00:38.5285874Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T03:00:38.5285961Z               "line": 199
2026-06-09T03:00:38.5286070Z             },
2026-06-09T03:00:38.5286146Z             {
2026-06-09T03:00:38.5286257Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T03:00:38.5286342Z               "line": 219
2026-06-09T03:00:38.5286423Z             },
2026-06-09T03:00:38.5286509Z             {
2026-06-09T03:00:38.5286615Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T03:00:38.5286699Z               "line": 244
2026-06-09T03:00:38.5286780Z             },
2026-06-09T03:00:38.5286862Z             {
2026-06-09T03:00:38.5287228Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T03:00:38.5287317Z               "line": 269
2026-06-09T03:00:38.5287397Z             },
2026-06-09T03:00:38.5287477Z             {
2026-06-09T03:00:38.5287588Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T03:00:38.5287679Z               "line": 290
2026-06-09T03:00:38.5287759Z             },
2026-06-09T03:00:38.5287840Z             {
2026-06-09T03:00:38.5287951Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T03:00:38.5288036Z               "line": 317
2026-06-09T03:00:38.5288116Z             }
2026-06-09T03:00:38.5288204Z           ]
2026-06-09T03:00:38.5288284Z         }
2026-06-09T03:00:38.5288365Z       }
2026-06-09T03:00:38.5288455Z     },
2026-06-09T03:00:38.5288533Z     {
2026-06-09T03:00:38.5288632Z       "id": "REQ-SEAM-INJECT",
2026-06-09T03:00:38.5288785Z       "title": "inject-input methods configurable per activity-state",
2026-06-09T03:00:38.5288880Z       "requiredStages": [
2026-06-09T03:00:38.5288975Z         "impl",
2026-06-09T03:00:38.5289061Z         "unit"
2026-06-09T03:00:38.5289143Z       ],
2026-06-09T03:00:38.5289224Z       "stages": {
2026-06-09T03:00:38.5289318Z         "doc": {
2026-06-09T03:00:38.5289409Z           "complete": false,
2026-06-09T03:00:38.5289501Z           "evidence": []
2026-06-09T03:00:38.5289580Z         },
2026-06-09T03:00:38.5289666Z         "impl": {
2026-06-09T03:00:38.5289753Z           "complete": true,
2026-06-09T03:00:38.5289839Z           "evidence": [
2026-06-09T03:00:38.5289923Z             {
2026-06-09T03:00:38.5290032Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5290119Z               "line": 19
2026-06-09T03:00:38.5290200Z             },
2026-06-09T03:00:38.5290286Z             {
2026-06-09T03:00:38.5290395Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5290477Z               "line": 111
2026-06-09T03:00:38.5290558Z             }
2026-06-09T03:00:38.5290642Z           ]
2026-06-09T03:00:38.5290734Z         },
2026-06-09T03:00:38.5290815Z         "int": {
2026-06-09T03:00:38.5290906Z           "complete": false,
2026-06-09T03:00:38.5290991Z           "evidence": []
2026-06-09T03:00:38.5291073Z         },
2026-06-09T03:00:38.5291154Z         "unit": {
2026-06-09T03:00:38.5291244Z           "complete": true,
2026-06-09T03:00:38.5291330Z           "evidence": [
2026-06-09T03:00:38.5291411Z             {
2026-06-09T03:00:38.5291516Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5291601Z               "line": 320
2026-06-09T03:00:38.5291683Z             },
2026-06-09T03:00:38.5291764Z             {
2026-06-09T03:00:38.5291868Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5291959Z               "line": 340
2026-06-09T03:00:38.5292041Z             }
2026-06-09T03:00:38.5292117Z           ]
2026-06-09T03:00:38.5292201Z         }
2026-06-09T03:00:38.5292279Z       }
2026-06-09T03:00:38.5292356Z     },
2026-06-09T03:00:38.5292451Z     {
2026-06-09T03:00:38.5292554Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-09T03:00:38.5292683Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-09T03:00:38.5292773Z       "requiredStages": [
2026-06-09T03:00:38.5292856Z         "impl",
2026-06-09T03:00:38.5292937Z         "unit"
2026-06-09T03:00:38.5293025Z       ],
2026-06-09T03:00:38.5293111Z       "stages": {
2026-06-09T03:00:38.5293195Z         "doc": {
2026-06-09T03:00:38.5293291Z           "complete": false,
2026-06-09T03:00:38.5293373Z           "evidence": []
2026-06-09T03:00:38.5293453Z         },
2026-06-09T03:00:38.5293538Z         "impl": {
2026-06-09T03:00:38.5293625Z           "complete": true,
2026-06-09T03:00:38.5293720Z           "evidence": [
2026-06-09T03:00:38.5293806Z             {
2026-06-09T03:00:38.5293921Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5294007Z               "line": 18
2026-06-09T03:00:38.5294088Z             },
2026-06-09T03:00:38.5294163Z             {
2026-06-09T03:00:38.5294464Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5294550Z               "line": 309
2026-06-09T03:00:38.5294637Z             }
2026-06-09T03:00:38.5294716Z           ]
2026-06-09T03:00:38.5294802Z         },
2026-06-09T03:00:38.5294890Z         "int": {
2026-06-09T03:00:38.5294980Z           "complete": false,
2026-06-09T03:00:38.5295068Z           "evidence": []
2026-06-09T03:00:38.5295145Z         },
2026-06-09T03:00:38.5295230Z         "unit": {
2026-06-09T03:00:38.5295321Z           "complete": true,
2026-06-09T03:00:38.5295405Z           "evidence": [
2026-06-09T03:00:38.5295485Z             {
2026-06-09T03:00:38.5295591Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5295677Z               "line": 559
2026-06-09T03:00:38.5295757Z             },
2026-06-09T03:00:38.5295844Z             {
2026-06-09T03:00:38.5295953Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5296038Z               "line": 569
2026-06-09T03:00:38.5296134Z             }
2026-06-09T03:00:38.5296212Z           ]
2026-06-09T03:00:38.5296291Z         }
2026-06-09T03:00:38.5296372Z       }
2026-06-09T03:00:38.5296453Z     },
2026-06-09T03:00:38.5296536Z     {
2026-06-09T03:00:38.5296630Z       "id": "REQ-SEAM-PSYCHE",
2026-06-09T03:00:38.5296768Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-09T03:00:38.5296860Z       "requiredStages": [
2026-06-09T03:00:38.5297035Z         "impl",
2026-06-09T03:00:38.5297117Z         "unit",
2026-06-09T03:00:38.5297203Z         "int"
2026-06-09T03:00:38.5297288Z       ],
2026-06-09T03:00:38.5297374Z       "stages": {
2026-06-09T03:00:38.5297461Z         "doc": {
2026-06-09T03:00:38.5297546Z           "complete": false,
2026-06-09T03:00:38.5297635Z           "evidence": []
2026-06-09T03:00:38.5297716Z         },
2026-06-09T03:00:38.5297807Z         "impl": {
2026-06-09T03:00:38.5297891Z           "complete": true,
2026-06-09T03:00:38.5297981Z           "evidence": [
2026-06-09T03:00:38.5298081Z             {
2026-06-09T03:00:38.5298187Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T03:00:38.5298271Z               "line": 19
2026-06-09T03:00:38.5298352Z             },
2026-06-09T03:00:38.5298439Z             {
2026-06-09T03:00:38.5298549Z               "path": "crates/spt/src/api/live.rs",
2026-06-09T03:00:38.5298634Z               "line": 12
2026-06-09T03:00:38.5298711Z             },
2026-06-09T03:00:38.5298792Z             {
2026-06-09T03:00:38.5298901Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5298987Z               "line": 209
2026-06-09T03:00:38.5299069Z             }
2026-06-09T03:00:38.5299154Z           ]
2026-06-09T03:00:38.5299235Z         },
2026-06-09T03:00:38.5299320Z         "int": {
2026-06-09T03:00:38.5299403Z           "complete": true,
2026-06-09T03:00:38.5299492Z           "evidence": [
2026-06-09T03:00:38.5299573Z             {
2026-06-09T03:00:38.5299698Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.5299789Z               "line": 255
2026-06-09T03:00:38.5299869Z             }
2026-06-09T03:00:38.5299955Z           ]
2026-06-09T03:00:38.5300033Z         },
2026-06-09T03:00:38.5300118Z         "unit": {
2026-06-09T03:00:38.5300202Z           "complete": true,
2026-06-09T03:00:38.5300289Z           "evidence": [
2026-06-09T03:00:38.5300371Z             {
2026-06-09T03:00:38.5300474Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T03:00:38.5300559Z               "line": 161
2026-06-09T03:00:38.5300640Z             },
2026-06-09T03:00:38.5300718Z             {
2026-06-09T03:00:38.5300822Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T03:00:38.5300907Z               "line": 168
2026-06-09T03:00:38.5300984Z             },
2026-06-09T03:00:38.5301066Z             {
2026-06-09T03:00:38.5301175Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T03:00:38.5301260Z               "line": 191
2026-06-09T03:00:38.5301342Z             },
2026-06-09T03:00:38.5301619Z             {
2026-06-09T03:00:38.5301728Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-09T03:00:38.5301823Z               "line": 106
2026-06-09T03:00:38.5301905Z             },
2026-06-09T03:00:38.5301991Z             {
2026-06-09T03:00:38.5302094Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-09T03:00:38.5302180Z               "line": 137
2026-06-09T03:00:38.5302263Z             },
2026-06-09T03:00:38.5302348Z             {
2026-06-09T03:00:38.5302448Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-09T03:00:38.5302534Z               "line": 161
2026-06-09T03:00:38.5302616Z             }
2026-06-09T03:00:38.5302696Z           ]
2026-06-09T03:00:38.5302776Z         }
2026-06-09T03:00:38.5302859Z       }
2026-06-09T03:00:38.5302935Z     },
2026-06-09T03:00:38.5303020Z     {
2026-06-09T03:00:38.5303109Z       "id": "REQ-SEAM-RESUME",
2026-06-09T03:00:38.5303281Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-09T03:00:38.5303379Z       "requiredStages": [
2026-06-09T03:00:38.5303464Z         "impl",
2026-06-09T03:00:38.5303546Z         "unit"
2026-06-09T03:00:38.5303632Z       ],
2026-06-09T03:00:38.5303718Z       "stages": {
2026-06-09T03:00:38.5303808Z         "doc": {
2026-06-09T03:00:38.5303895Z           "complete": false,
2026-06-09T03:00:38.5303980Z           "evidence": []
2026-06-09T03:00:38.5304065Z         },
2026-06-09T03:00:38.5304142Z         "impl": {
2026-06-09T03:00:38.5304233Z           "complete": true,
2026-06-09T03:00:38.5304318Z           "evidence": [
2026-06-09T03:00:38.5304394Z             {
2026-06-09T03:00:38.5304505Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T03:00:38.5304591Z               "line": 19
2026-06-09T03:00:38.5304671Z             }
2026-06-09T03:00:38.5304752Z           ]
2026-06-09T03:00:38.5304834Z         },
2026-06-09T03:00:38.5304919Z         "int": {
2026-06-09T03:00:38.5305006Z           "complete": false,
2026-06-09T03:00:38.5305100Z           "evidence": []
2026-06-09T03:00:38.5305178Z         },
2026-06-09T03:00:38.5305262Z         "unit": {
2026-06-09T03:00:38.5305348Z           "complete": true,
2026-06-09T03:00:38.5305435Z           "evidence": [
2026-06-09T03:00:38.5305517Z             {
2026-06-09T03:00:38.5305619Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T03:00:38.5305705Z               "line": 179
2026-06-09T03:00:38.5305786Z             },
2026-06-09T03:00:38.5305867Z             {
2026-06-09T03:00:38.5305969Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T03:00:38.5306059Z               "line": 201
2026-06-09T03:00:38.5306137Z             },
2026-06-09T03:00:38.5306218Z             {
2026-06-09T03:00:38.5306322Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T03:00:38.5306404Z               "line": 222
2026-06-09T03:00:38.5306490Z             }
2026-06-09T03:00:38.5306566Z           ]
2026-06-09T03:00:38.5306646Z         }
2026-06-09T03:00:38.5306728Z       }
2026-06-09T03:00:38.5306823Z     },
2026-06-09T03:00:38.5306905Z     {
2026-06-09T03:00:38.5307081Z       "id": "REQ-SEAM-SPAWN",
2026-06-09T03:00:38.5307180Z       "title": "spawn-session seam",
2026-06-09T03:00:38.5307266Z       "requiredStages": [
2026-06-09T03:00:38.5307348Z         "impl",
2026-06-09T03:00:38.5307430Z         "unit"
2026-06-09T03:00:38.5307509Z       ],
2026-06-09T03:00:38.5307590Z       "stages": {
2026-06-09T03:00:38.5307672Z         "doc": {
2026-06-09T03:00:38.5307773Z           "complete": false,
2026-06-09T03:00:38.5307877Z           "evidence": []
2026-06-09T03:00:38.5307968Z         },
2026-06-09T03:00:38.5308055Z         "impl": {
2026-06-09T03:00:38.5308139Z           "complete": true,
2026-06-09T03:00:38.5308234Z           "evidence": [
2026-06-09T03:00:38.5308309Z             {
2026-06-09T03:00:38.5308428Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.5308512Z               "line": 20
2026-06-09T03:00:38.5308593Z             }
2026-06-09T03:00:38.5308855Z           ]
2026-06-09T03:00:38.5308941Z         },
2026-06-09T03:00:38.5309024Z         "int": {
2026-06-09T03:00:38.5309114Z           "complete": false,
2026-06-09T03:00:38.5309203Z           "evidence": []
2026-06-09T03:00:38.5309281Z         },
2026-06-09T03:00:38.5309362Z         "unit": {
2026-06-09T03:00:38.5309452Z           "complete": true,
2026-06-09T03:00:38.5309537Z           "evidence": [
2026-06-09T03:00:38.5309619Z             {
2026-06-09T03:00:38.5309733Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.5309823Z               "line": 435
2026-06-09T03:00:38.5309905Z             },
2026-06-09T03:00:38.5309987Z             {
2026-06-09T03:00:38.5310100Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.5310186Z               "line": 442
2026-06-09T03:00:38.5310263Z             },
2026-06-09T03:00:38.5310349Z             {
2026-06-09T03:00:38.5310462Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.5310564Z               "line": 452
2026-06-09T03:00:38.5310645Z             },
2026-06-09T03:00:38.5310724Z             {
2026-06-09T03:00:38.5310830Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.5310917Z               "line": 458
2026-06-09T03:00:38.5311002Z             },
2026-06-09T03:00:38.5311082Z             {
2026-06-09T03:00:38.5311191Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.5311287Z               "line": 483
2026-06-09T03:00:38.5311368Z             },
2026-06-09T03:00:38.5311448Z             {
2026-06-09T03:00:38.5311559Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T03:00:38.5311645Z               "line": 520
2026-06-09T03:00:38.5311730Z             }
2026-06-09T03:00:38.5311811Z           ]
2026-06-09T03:00:38.5311888Z         }
2026-06-09T03:00:38.5311974Z       }
2026-06-09T03:00:38.5312054Z     },
2026-06-09T03:00:38.5312135Z     {
2026-06-09T03:00:38.5312226Z       "id": "REQ-SEAM-UPDATE",
2026-06-09T03:00:38.5312397Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-09T03:00:38.5312483Z       "requiredStages": [
2026-06-09T03:00:38.5312570Z         "impl",
2026-06-09T03:00:38.5312655Z         "unit"
2026-06-09T03:00:38.5312731Z       ],
2026-06-09T03:00:38.5312818Z       "stages": {
2026-06-09T03:00:38.5312894Z         "doc": {
2026-06-09T03:00:38.5312984Z           "complete": false,
2026-06-09T03:00:38.5313070Z           "evidence": []
2026-06-09T03:00:38.5313157Z         },
2026-06-09T03:00:38.5313242Z         "impl": {
2026-06-09T03:00:38.5313331Z           "complete": true,
2026-06-09T03:00:38.5313414Z           "evidence": [
2026-06-09T03:00:38.5313496Z             {
2026-06-09T03:00:38.5313627Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5313707Z               "line": 28
2026-06-09T03:00:38.5313789Z             },
2026-06-09T03:00:38.5313869Z             {
2026-06-09T03:00:38.5314000Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5314092Z               "line": 83
2026-06-09T03:00:38.5314174Z             }
2026-06-09T03:00:38.5314254Z           ]
2026-06-09T03:00:38.5314329Z         },
2026-06-09T03:00:38.5314411Z         "int": {
2026-06-09T03:00:38.5314502Z           "complete": false,
2026-06-09T03:00:38.5314588Z           "evidence": []
2026-06-09T03:00:38.5314668Z         },
2026-06-09T03:00:38.5314746Z         "unit": {
2026-06-09T03:00:38.5314836Z           "complete": true,
2026-06-09T03:00:38.5314922Z           "evidence": [
2026-06-09T03:00:38.5315007Z             {
2026-06-09T03:00:38.5315127Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5315208Z               "line": 285
2026-06-09T03:00:38.5315293Z             },
2026-06-09T03:00:38.5315375Z             {
2026-06-09T03:00:38.5315494Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5315575Z               "line": 296
2026-06-09T03:00:38.5315661Z             }
2026-06-09T03:00:38.5315904Z           ]
2026-06-09T03:00:38.5315990Z         }
2026-06-09T03:00:38.5316072Z       }
2026-06-09T03:00:38.5316147Z     },
2026-06-09T03:00:38.5316227Z     {
2026-06-09T03:00:38.5316312Z       "id": "REQ-SEC-1",
2026-06-09T03:00:38.5316678Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-09T03:00:38.5316773Z       "requiredStages": [
2026-06-09T03:00:38.5316854Z         "impl",
2026-06-09T03:00:38.5316935Z         "unit"
2026-06-09T03:00:38.5317102Z       ],
2026-06-09T03:00:38.5317187Z       "stages": {
2026-06-09T03:00:38.5317268Z         "doc": {
2026-06-09T03:00:38.5317360Z           "complete": false,
2026-06-09T03:00:38.5317446Z           "evidence": []
2026-06-09T03:00:38.5317526Z         },
2026-06-09T03:00:38.5317608Z         "impl": {
2026-06-09T03:00:38.5317699Z           "complete": true,
2026-06-09T03:00:38.5317784Z           "evidence": [
2026-06-09T03:00:38.5317874Z             {
2026-06-09T03:00:38.5317994Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T03:00:38.5318079Z               "line": 84
2026-06-09T03:00:38.5318160Z             },
2026-06-09T03:00:38.5318237Z             {
2026-06-09T03:00:38.5318352Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T03:00:38.5318437Z               "line": 114
2026-06-09T03:00:38.5318518Z             },
2026-06-09T03:00:38.5318600Z             {
2026-06-09T03:00:38.5318709Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T03:00:38.5318789Z               "line": 128
2026-06-09T03:00:38.5318879Z             },
2026-06-09T03:00:38.5318956Z             {
2026-06-09T03:00:38.5319068Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5319153Z               "line": 108
2026-06-09T03:00:38.5319234Z             },
2026-06-09T03:00:38.5319312Z             {
2026-06-09T03:00:38.5319420Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5319521Z               "line": 129
2026-06-09T03:00:38.5319602Z             },
2026-06-09T03:00:38.5319679Z             {
2026-06-09T03:00:38.5319788Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5319869Z               "line": 142
2026-06-09T03:00:38.5319960Z             },
2026-06-09T03:00:38.5320045Z             {
2026-06-09T03:00:38.5320155Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5320237Z               "line": 208
2026-06-09T03:00:38.5320317Z             },
2026-06-09T03:00:38.5320398Z             {
2026-06-09T03:00:38.5320499Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5320584Z               "line": 234
2026-06-09T03:00:38.5320665Z             },
2026-06-09T03:00:38.5320746Z             {
2026-06-09T03:00:38.5320843Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5320932Z               "line": 3732
2026-06-09T03:00:38.5321008Z             }
2026-06-09T03:00:38.5321109Z           ]
2026-06-09T03:00:38.5321186Z         },
2026-06-09T03:00:38.5321265Z         "int": {
2026-06-09T03:00:38.5321356Z           "complete": false,
2026-06-09T03:00:38.5321439Z           "evidence": []
2026-06-09T03:00:38.5321520Z         },
2026-06-09T03:00:38.5321603Z         "unit": {
2026-06-09T03:00:38.5321689Z           "complete": true,
2026-06-09T03:00:38.5321775Z           "evidence": [
2026-06-09T03:00:38.5321857Z             {
2026-06-09T03:00:38.5321966Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T03:00:38.5322051Z               "line": 140
2026-06-09T03:00:38.5322129Z             },
2026-06-09T03:00:38.5322210Z             {
2026-06-09T03:00:38.5322323Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T03:00:38.5322405Z               "line": 192
2026-06-09T03:00:38.5322486Z             },
2026-06-09T03:00:38.5322567Z             {
2026-06-09T03:00:38.5322671Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T03:00:38.5322953Z               "line": 233
2026-06-09T03:00:38.5323039Z             },
2026-06-09T03:00:38.5323116Z             {
2026-06-09T03:00:38.5323234Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-09T03:00:38.5323315Z               "line": 138
2026-06-09T03:00:38.5323398Z             },
2026-06-09T03:00:38.5323473Z             {
2026-06-09T03:00:38.5323582Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5323669Z               "line": 246
2026-06-09T03:00:38.5323750Z             },
2026-06-09T03:00:38.5323835Z             {
2026-06-09T03:00:38.5325955Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5326068Z               "line": 276
2026-06-09T03:00:38.5326149Z             },
2026-06-09T03:00:38.5326231Z             {
2026-06-09T03:00:38.5326354Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5326440Z               "line": 309
2026-06-09T03:00:38.5326521Z             },
2026-06-09T03:00:38.5326599Z             {
2026-06-09T03:00:38.5326730Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5326815Z               "line": 328
2026-06-09T03:00:38.5326897Z             },
2026-06-09T03:00:38.5327057Z             {
2026-06-09T03:00:38.5327166Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5327252Z               "line": 361
2026-06-09T03:00:38.5327328Z             },
2026-06-09T03:00:38.5327437Z             {
2026-06-09T03:00:38.5327567Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T03:00:38.5327652Z               "line": 385
2026-06-09T03:00:38.5327729Z             },
2026-06-09T03:00:38.5327805Z             {
2026-06-09T03:00:38.5327906Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5327986Z               "line": 5298
2026-06-09T03:00:38.5328072Z             }
2026-06-09T03:00:38.5328163Z           ]
2026-06-09T03:00:38.5328240Z         }
2026-06-09T03:00:38.5328320Z       }
2026-06-09T03:00:38.5328401Z     },
2026-06-09T03:00:38.5328493Z     {
2026-06-09T03:00:38.5328578Z       "id": "REQ-SHELL-1",
2026-06-09T03:00:38.5329406Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-09T03:00:38.5329501Z       "requiredStages": [
2026-06-09T03:00:38.5329586Z         "impl",
2026-06-09T03:00:38.5329670Z         "unit",
2026-06-09T03:00:38.5329747Z         "int"
2026-06-09T03:00:38.5329834Z       ],
2026-06-09T03:00:38.5329915Z       "stages": {
2026-06-09T03:00:38.5329995Z         "doc": {
2026-06-09T03:00:38.5330086Z           "complete": false,
2026-06-09T03:00:38.5330172Z           "evidence": []
2026-06-09T03:00:38.5330253Z         },
2026-06-09T03:00:38.5330338Z         "impl": {
2026-06-09T03:00:38.5330434Z           "complete": true,
2026-06-09T03:00:38.5330524Z           "evidence": [
2026-06-09T03:00:38.5330605Z             {
2026-06-09T03:00:38.5330730Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.5330816Z               "line": 94
2026-06-09T03:00:38.5330897Z             },
2026-06-09T03:00:38.5330977Z             {
2026-06-09T03:00:38.5331093Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.5331182Z               "line": 119
2026-06-09T03:00:38.5331263Z             },
2026-06-09T03:00:38.5331345Z             {
2026-06-09T03:00:38.5331460Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5331544Z               "line": 27
2026-06-09T03:00:38.5331626Z             },
2026-06-09T03:00:38.5331708Z             {
2026-06-09T03:00:38.5331826Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5331911Z               "line": 52
2026-06-09T03:00:38.5331994Z             },
2026-06-09T03:00:38.5332076Z             {
2026-06-09T03:00:38.5332403Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5332493Z               "line": 132
2026-06-09T03:00:38.5332578Z             },
2026-06-09T03:00:38.5332659Z             {
2026-06-09T03:00:38.5332770Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5332855Z               "line": 164
2026-06-09T03:00:38.5332931Z             },
2026-06-09T03:00:38.5333018Z             {
2026-06-09T03:00:38.5333127Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5333217Z               "line": 22
2026-06-09T03:00:38.5333304Z             },
2026-06-09T03:00:38.5333389Z             {
2026-06-09T03:00:38.5333498Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5333585Z               "line": 65
2026-06-09T03:00:38.5333667Z             },
2026-06-09T03:00:38.5333747Z             {
2026-06-09T03:00:38.5333856Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5333958Z               "line": 76
2026-06-09T03:00:38.5334038Z             },
2026-06-09T03:00:38.5334118Z             {
2026-06-09T03:00:38.5334229Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5334315Z               "line": 150
2026-06-09T03:00:38.5334395Z             },
2026-06-09T03:00:38.5334476Z             {
2026-06-09T03:00:38.5334587Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5334672Z               "line": 209
2026-06-09T03:00:38.5334757Z             },
2026-06-09T03:00:38.5334832Z             {
2026-06-09T03:00:38.5334947Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5335031Z               "line": 246
2026-06-09T03:00:38.5335117Z             },
2026-06-09T03:00:38.5335198Z             {
2026-06-09T03:00:38.5335313Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5335402Z               "line": 267
2026-06-09T03:00:38.5335478Z             },
2026-06-09T03:00:38.5335580Z             {
2026-06-09T03:00:38.5335693Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5335779Z               "line": 280
2026-06-09T03:00:38.5335856Z             },
2026-06-09T03:00:38.5335937Z             {
2026-06-09T03:00:38.5336051Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.5336137Z               "line": 207
2026-06-09T03:00:38.5336214Z             },
2026-06-09T03:00:38.5336299Z             {
2026-06-09T03:00:38.5336409Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.5336495Z               "line": 223
2026-06-09T03:00:38.5336571Z             },
2026-06-09T03:00:38.5336652Z             {
2026-06-09T03:00:38.5336766Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.5336853Z               "line": 41
2026-06-09T03:00:38.5336933Z             },
2026-06-09T03:00:38.5337096Z             {
2026-06-09T03:00:38.5337215Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.5337319Z               "line": 204
2026-06-09T03:00:38.5337399Z             },
2026-06-09T03:00:38.5337481Z             {
2026-06-09T03:00:38.5337593Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T03:00:38.5337683Z               "line": 156
2026-06-09T03:00:38.5337759Z             },
2026-06-09T03:00:38.5337842Z             {
2026-06-09T03:00:38.5337950Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.5338035Z               "line": 295
2026-06-09T03:00:38.5338113Z             },
2026-06-09T03:00:38.5338194Z             {
2026-06-09T03:00:38.5338298Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T03:00:38.5338380Z               "line": 345
2026-06-09T03:00:38.5338461Z             },
2026-06-09T03:00:38.5338537Z             {
2026-06-09T03:00:38.5338655Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5338738Z               "line": 261
2026-06-09T03:00:38.5338819Z             },
2026-06-09T03:00:38.5339086Z             {
2026-06-09T03:00:38.5339190Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5339276Z               "line": 4230
2026-06-09T03:00:38.5339357Z             },
2026-06-09T03:00:38.5339444Z             {
2026-06-09T03:00:38.5339538Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5339629Z               "line": 4380
2026-06-09T03:00:38.5339711Z             },
2026-06-09T03:00:38.5339792Z             {
2026-06-09T03:00:38.5339885Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5339971Z               "line": 4417
2026-06-09T03:00:38.5340047Z             }
2026-06-09T03:00:38.5340127Z           ]
2026-06-09T03:00:38.5340207Z         },
2026-06-09T03:00:38.5340288Z         "int": {
2026-06-09T03:00:38.5340379Z           "complete": true,
2026-06-09T03:00:38.5340461Z           "evidence": [
2026-06-09T03:00:38.5340540Z             {
2026-06-09T03:00:38.5340660Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5340756Z               "line": 705
2026-06-09T03:00:38.5340837Z             },
2026-06-09T03:00:38.5340912Z             {
2026-06-09T03:00:38.5341033Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-09T03:00:38.5341118Z               "line": 8
2026-06-09T03:00:38.5341193Z             },
2026-06-09T03:00:38.5341275Z             {
2026-06-09T03:00:38.5341390Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-09T03:00:38.5341471Z               "line": 49
2026-06-09T03:00:38.5341552Z             },
2026-06-09T03:00:38.5341629Z             {
2026-06-09T03:00:38.5341742Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5341823Z               "line": 707
2026-06-09T03:00:38.5341905Z             },
2026-06-09T03:00:38.5341987Z             {
2026-06-09T03:00:38.5342095Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5342186Z               "line": 1117
2026-06-09T03:00:38.5342263Z             },
2026-06-09T03:00:38.5342363Z             {
2026-06-09T03:00:38.5342476Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-09T03:00:38.5342559Z               "line": 17
2026-06-09T03:00:38.5342640Z             },
2026-06-09T03:00:38.5342720Z             {
2026-06-09T03:00:38.5342824Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-09T03:00:38.5342909Z               "line": 14
2026-06-09T03:00:38.5342987Z             }
2026-06-09T03:00:38.5343067Z           ]
2026-06-09T03:00:38.5343148Z         },
2026-06-09T03:00:38.5343229Z         "unit": {
2026-06-09T03:00:38.5343315Z           "complete": true,
2026-06-09T03:00:38.5343396Z           "evidence": [
2026-06-09T03:00:38.5343477Z             {
2026-06-09T03:00:38.5343588Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5343669Z               "line": 234
2026-06-09T03:00:38.5343748Z             },
2026-06-09T03:00:38.5343825Z             {
2026-06-09T03:00:38.5343945Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5344035Z               "line": 267
2026-06-09T03:00:38.5344116Z             },
2026-06-09T03:00:38.5344193Z             {
2026-06-09T03:00:38.5344302Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5344388Z               "line": 307
2026-06-09T03:00:38.5344464Z             },
2026-06-09T03:00:38.5344542Z             {
2026-06-09T03:00:38.5344654Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5344741Z               "line": 519
2026-06-09T03:00:38.5344818Z             },
2026-06-09T03:00:38.5344903Z             {
2026-06-09T03:00:38.5345012Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5345099Z               "line": 592
2026-06-09T03:00:38.5345176Z             },
2026-06-09T03:00:38.5345256Z             {
2026-06-09T03:00:38.5345364Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5345455Z               "line": 736
2026-06-09T03:00:38.5345601Z             },
2026-06-09T03:00:38.5345748Z             {
2026-06-09T03:00:38.5345854Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.5345934Z               "line": 585
2026-06-09T03:00:38.5346015Z             },
2026-06-09T03:00:38.5346091Z             {
2026-06-09T03:00:38.5346206Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T03:00:38.5346291Z               "line": 352
2026-06-09T03:00:38.5346372Z             },
2026-06-09T03:00:38.5346450Z             {
2026-06-09T03:00:38.5346545Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5346630Z               "line": 5646
2026-06-09T03:00:38.5346707Z             },
2026-06-09T03:00:38.5346789Z             {
2026-06-09T03:00:38.5346884Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5347075Z               "line": 5968
2026-06-09T03:00:38.5347159Z             },
2026-06-09T03:00:38.5347236Z             {
2026-06-09T03:00:38.5347331Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5347428Z               "line": 6334
2026-06-09T03:00:38.5347507Z             }
2026-06-09T03:00:38.5347589Z           ]
2026-06-09T03:00:38.5347666Z         }
2026-06-09T03:00:38.5347747Z       }
2026-06-09T03:00:38.5347817Z     },
2026-06-09T03:00:38.5347898Z     {
2026-06-09T03:00:38.5347983Z       "id": "REQ-SHELL-2",
2026-06-09T03:00:38.5349383Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-09T03:00:38.5349478Z       "requiredStages": [
2026-06-09T03:00:38.5349554Z         "impl",
2026-06-09T03:00:38.5349637Z         "unit",
2026-06-09T03:00:38.5349731Z         "int"
2026-06-09T03:00:38.5349812Z       ],
2026-06-09T03:00:38.5349898Z       "stages": {
2026-06-09T03:00:38.5349975Z         "doc": {
2026-06-09T03:00:38.5350069Z           "complete": false,
2026-06-09T03:00:38.5350151Z           "evidence": []
2026-06-09T03:00:38.5350228Z         },
2026-06-09T03:00:38.5350309Z         "impl": {
2026-06-09T03:00:38.5350398Z           "complete": true,
2026-06-09T03:00:38.5350483Z           "evidence": [
2026-06-09T03:00:38.5350564Z             {
2026-06-09T03:00:38.5350678Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.5350758Z               "line": 246
2026-06-09T03:00:38.5350838Z             },
2026-06-09T03:00:38.5350925Z             {
2026-06-09T03:00:38.5351035Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5351119Z               "line": 403
2026-06-09T03:00:38.5351196Z             },
2026-06-09T03:00:38.5351278Z             {
2026-06-09T03:00:38.5351392Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T03:00:38.5351482Z               "line": 250
2026-06-09T03:00:38.5351559Z             },
2026-06-09T03:00:38.5351636Z             {
2026-06-09T03:00:38.5351754Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.5351835Z               "line": 310
2026-06-09T03:00:38.5351912Z             },
2026-06-09T03:00:38.5351988Z             {
2026-06-09T03:00:38.5352102Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.5352185Z               "line": 30
2026-06-09T03:00:38.5352265Z             },
2026-06-09T03:00:38.5352345Z             {
2026-06-09T03:00:38.5352456Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.5352537Z               "line": 150
2026-06-09T03:00:38.5352613Z             },
2026-06-09T03:00:38.5352694Z             {
2026-06-09T03:00:38.5352799Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.5352885Z               "line": 186
2026-06-09T03:00:38.5353167Z             },
2026-06-09T03:00:38.5353252Z             {
2026-06-09T03:00:38.5353365Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.5353446Z               "line": 345
2026-06-09T03:00:38.5353528Z             },
2026-06-09T03:00:38.5353609Z             {
2026-06-09T03:00:38.5353727Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.5353814Z               "line": 348
2026-06-09T03:00:38.5353890Z             },
2026-06-09T03:00:38.5353970Z             {
2026-06-09T03:00:38.5354085Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T03:00:38.5354172Z               "line": 115
2026-06-09T03:00:38.5354253Z             },
2026-06-09T03:00:38.5354332Z             {
2026-06-09T03:00:38.5354453Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5354538Z               "line": 120
2026-06-09T03:00:38.5354619Z             },
2026-06-09T03:00:38.5354695Z             {
2026-06-09T03:00:38.5354815Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5354905Z               "line": 360
2026-06-09T03:00:38.5354986Z             },
2026-06-09T03:00:38.5355063Z             {
2026-06-09T03:00:38.5355177Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5355262Z               "line": 464
2026-06-09T03:00:38.5355339Z             },
2026-06-09T03:00:38.5355421Z             {
2026-06-09T03:00:38.5355539Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5355625Z               "line": 24
2026-06-09T03:00:38.5355707Z             },
2026-06-09T03:00:38.5355783Z             {
2026-06-09T03:00:38.5355896Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5355981Z               "line": 76
2026-06-09T03:00:38.5356063Z             },
2026-06-09T03:00:38.5356142Z             {
2026-06-09T03:00:38.5356251Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5356337Z               "line": 154
2026-06-09T03:00:38.5356437Z             },
2026-06-09T03:00:38.5356513Z             {
2026-06-09T03:00:38.5356623Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5356710Z               "line": 177
2026-06-09T03:00:38.5356791Z             },
2026-06-09T03:00:38.5356870Z             {
2026-06-09T03:00:38.5357071Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5357147Z               "line": 273
2026-06-09T03:00:38.5357229Z             },
2026-06-09T03:00:38.5357315Z             {
2026-06-09T03:00:38.5357429Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5357519Z               "line": 450
2026-06-09T03:00:38.5357596Z             },
2026-06-09T03:00:38.5357678Z             {
2026-06-09T03:00:38.5357791Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5357877Z               "line": 532
2026-06-09T03:00:38.5357969Z             },
2026-06-09T03:00:38.5358048Z             {
2026-06-09T03:00:38.5358183Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-09T03:00:38.5358264Z               "line": 27
2026-06-09T03:00:38.5358345Z             },
2026-06-09T03:00:38.5358425Z             {
2026-06-09T03:00:38.5358548Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-09T03:00:38.5358630Z               "line": 43
2026-06-09T03:00:38.5358713Z             },
2026-06-09T03:00:38.5358794Z             {
2026-06-09T03:00:38.5358904Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5358990Z               "line": 323
2026-06-09T03:00:38.5359065Z             },
2026-06-09T03:00:38.5359141Z             {
2026-06-09T03:00:38.5359243Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5359329Z               "line": 1224
2026-06-09T03:00:38.5359409Z             },
2026-06-09T03:00:38.5359485Z             {
2026-06-09T03:00:38.5359591Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5359686Z               "line": 4244
2026-06-09T03:00:38.5360076Z             },
2026-06-09T03:00:38.5360158Z             {
2026-06-09T03:00:38.5360258Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5360343Z               "line": 4305
2026-06-09T03:00:38.5360424Z             },
2026-06-09T03:00:38.5360507Z             {
2026-06-09T03:00:38.5360601Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5360692Z               "line": 4333
2026-06-09T03:00:38.5360773Z             },
2026-06-09T03:00:38.5360855Z             {
2026-06-09T03:00:38.5360949Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5361034Z               "line": 4387
2026-06-09T03:00:38.5361115Z             },
2026-06-09T03:00:38.5361196Z             {
2026-06-09T03:00:38.5361294Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5361384Z               "line": 4503
2026-06-09T03:00:38.5361461Z             },
2026-06-09T03:00:38.5361543Z             {
2026-06-09T03:00:38.5361642Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5361737Z               "line": 4556
2026-06-09T03:00:38.5361819Z             },
2026-06-09T03:00:38.5361900Z             {
2026-06-09T03:00:38.5362009Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5362090Z               "line": 298
2026-06-09T03:00:38.5362172Z             },
2026-06-09T03:00:38.5362253Z             {
2026-06-09T03:00:38.5362357Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5362439Z               "line": 339
2026-06-09T03:00:38.5362520Z             }
2026-06-09T03:00:38.5362601Z           ]
2026-06-09T03:00:38.5362681Z         },
2026-06-09T03:00:38.5362763Z         "int": {
2026-06-09T03:00:38.5362853Z           "complete": true,
2026-06-09T03:00:38.5362949Z           "evidence": [
2026-06-09T03:00:38.5363025Z             {
2026-06-09T03:00:38.5363145Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5363229Z               "line": 698
2026-06-09T03:00:38.5363316Z             },
2026-06-09T03:00:38.5363403Z             {
2026-06-09T03:00:38.5363511Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5363597Z               "line": 707
2026-06-09T03:00:38.5363674Z             },
2026-06-09T03:00:38.5363756Z             {
2026-06-09T03:00:38.5363868Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5363953Z               "line": 1117
2026-06-09T03:00:38.5364035Z             },
2026-06-09T03:00:38.5364111Z             {
2026-06-09T03:00:38.5364239Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-09T03:00:38.5364331Z               "line": 18
2026-06-09T03:00:38.5364408Z             }
2026-06-09T03:00:38.5364488Z           ]
2026-06-09T03:00:38.5364568Z         },
2026-06-09T03:00:38.5364650Z         "unit": {
2026-06-09T03:00:38.5364741Z           "complete": true,
2026-06-09T03:00:38.5364827Z           "evidence": [
2026-06-09T03:00:38.5364907Z             {
2026-06-09T03:00:38.5365023Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T03:00:38.5365122Z               "line": 429
2026-06-09T03:00:38.5365197Z             },
2026-06-09T03:00:38.5365279Z             {
2026-06-09T03:00:38.5365394Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T03:00:38.5365480Z               "line": 794
2026-06-09T03:00:38.5365570Z             },
2026-06-09T03:00:38.5365652Z             {
2026-06-09T03:00:38.5365765Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5365846Z               "line": 625
2026-06-09T03:00:38.5365929Z             },
2026-06-09T03:00:38.5366005Z             {
2026-06-09T03:00:38.5366122Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5366210Z               "line": 674
2026-06-09T03:00:38.5366287Z             },
2026-06-09T03:00:38.5366367Z             {
2026-06-09T03:00:38.5366480Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T03:00:38.5366566Z               "line": 698
2026-06-09T03:00:38.5366787Z             },
2026-06-09T03:00:38.5366868Z             {
2026-06-09T03:00:38.5367069Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5367154Z               "line": 596
2026-06-09T03:00:38.5367241Z             },
2026-06-09T03:00:38.5367322Z             {
2026-06-09T03:00:38.5367435Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5367517Z               "line": 617
2026-06-09T03:00:38.5367604Z             },
2026-06-09T03:00:38.5367679Z             {
2026-06-09T03:00:38.5367794Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5367880Z               "line": 653
2026-06-09T03:00:38.5367960Z             },
2026-06-09T03:00:38.5368046Z             {
2026-06-09T03:00:38.5368156Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5368243Z               "line": 707
2026-06-09T03:00:38.5368317Z             },
2026-06-09T03:00:38.5368399Z             {
2026-06-09T03:00:38.5368529Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5368618Z               "line": 725
2026-06-09T03:00:38.5368699Z             },
2026-06-09T03:00:38.5368781Z             {
2026-06-09T03:00:38.5368896Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5368980Z               "line": 759
2026-06-09T03:00:38.5369065Z             },
2026-06-09T03:00:38.5369147Z             {
2026-06-09T03:00:38.5369255Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T03:00:38.5369340Z               "line": 834
2026-06-09T03:00:38.5369425Z             },
2026-06-09T03:00:38.5369503Z             {
2026-06-09T03:00:38.5369621Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-09T03:00:38.5369702Z               "line": 80
2026-06-09T03:00:38.5369788Z             },
2026-06-09T03:00:38.5369865Z             {
2026-06-09T03:00:38.5369969Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5370060Z               "line": 5117
2026-06-09T03:00:38.5370147Z             },
2026-06-09T03:00:38.5370227Z             {
2026-06-09T03:00:38.5370322Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5370408Z               "line": 5723
2026-06-09T03:00:38.5370485Z             },
2026-06-09T03:00:38.5370566Z             {
2026-06-09T03:00:38.5370665Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5370752Z               "line": 5793
2026-06-09T03:00:38.5370832Z             },
2026-06-09T03:00:38.5370908Z             {
2026-06-09T03:00:38.5371008Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5371091Z               "line": 5831
2026-06-09T03:00:38.5371171Z             }
2026-06-09T03:00:38.5371252Z           ]
2026-06-09T03:00:38.5371333Z         }
2026-06-09T03:00:38.5371416Z       }
2026-06-09T03:00:38.5371495Z     },
2026-06-09T03:00:38.5371575Z     {
2026-06-09T03:00:38.5371661Z       "id": "REQ-START-1",
2026-06-09T03:00:38.5371854Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-09T03:00:38.5371954Z       "requiredStages": [
2026-06-09T03:00:38.5372035Z         "impl",
2026-06-09T03:00:38.5372122Z         "unit"
2026-06-09T03:00:38.5372197Z       ],
2026-06-09T03:00:38.5372283Z       "stages": {
2026-06-09T03:00:38.5372365Z         "doc": {
2026-06-09T03:00:38.5372455Z           "complete": false,
2026-06-09T03:00:38.5372545Z           "evidence": []
2026-06-09T03:00:38.5372627Z         },
2026-06-09T03:00:38.5372708Z         "impl": {
2026-06-09T03:00:38.5372803Z           "complete": true,
2026-06-09T03:00:38.5372898Z           "evidence": [
2026-06-09T03:00:38.5372975Z             {
2026-06-09T03:00:38.5373089Z               "path": "crates/spt-store/src/seed.rs",
2026-06-09T03:00:38.5373179Z               "line": 16
2026-06-09T03:00:38.5373256Z             }
2026-06-09T03:00:38.5373347Z           ]
2026-06-09T03:00:38.5373428Z         },
2026-06-09T03:00:38.5373509Z         "int": {
2026-06-09T03:00:38.5373700Z           "complete": false,
2026-06-09T03:00:38.5373876Z           "evidence": []
2026-06-09T03:00:38.5373958Z         },
2026-06-09T03:00:38.5374039Z         "unit": {
2026-06-09T03:00:38.5374127Z           "complete": true,
2026-06-09T03:00:38.5374210Z           "evidence": [
2026-06-09T03:00:38.5374292Z             {
2026-06-09T03:00:38.5374395Z               "path": "crates/spt-store/src/seed.rs",
2026-06-09T03:00:38.5374480Z               "line": 43
2026-06-09T03:00:38.5374566Z             },
2026-06-09T03:00:38.5374644Z             {
2026-06-09T03:00:38.5374748Z               "path": "crates/spt-store/src/seed.rs",
2026-06-09T03:00:38.5374832Z               "line": 59
2026-06-09T03:00:38.5374915Z             }
2026-06-09T03:00:38.5374991Z           ]
2026-06-09T03:00:38.5375076Z         }
2026-06-09T03:00:38.5375157Z       }
2026-06-09T03:00:38.5375234Z     },
2026-06-09T03:00:38.5375320Z     {
2026-06-09T03:00:38.5375405Z       "id": "REQ-START-2",
2026-06-09T03:00:38.5375549Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-09T03:00:38.5375649Z       "requiredStages": [
2026-06-09T03:00:38.5375734Z         "impl",
2026-06-09T03:00:38.5375816Z         "unit",
2026-06-09T03:00:38.5375897Z         "int"
2026-06-09T03:00:38.5375978Z       ],
2026-06-09T03:00:38.5376059Z       "stages": {
2026-06-09T03:00:38.5376140Z         "doc": {
2026-06-09T03:00:38.5376227Z           "complete": false,
2026-06-09T03:00:38.5376316Z           "evidence": []
2026-06-09T03:00:38.5376397Z         },
2026-06-09T03:00:38.5376479Z         "impl": {
2026-06-09T03:00:38.5376570Z           "complete": true,
2026-06-09T03:00:38.5376654Z           "evidence": [
2026-06-09T03:00:38.5376736Z             {
2026-06-09T03:00:38.5376847Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5376932Z               "line": 16
2026-06-09T03:00:38.5377101Z             },
2026-06-09T03:00:38.5377183Z             {
2026-06-09T03:00:38.5377291Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5377390Z               "line": 100
2026-06-09T03:00:38.5377472Z             },
2026-06-09T03:00:38.5377548Z             {
2026-06-09T03:00:38.5377657Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5377743Z               "line": 208
2026-06-09T03:00:38.5377825Z             }
2026-06-09T03:00:38.5377906Z           ]
2026-06-09T03:00:38.5377986Z         },
2026-06-09T03:00:38.5378067Z         "int": {
2026-06-09T03:00:38.5378154Z           "complete": true,
2026-06-09T03:00:38.5378239Z           "evidence": [
2026-06-09T03:00:38.5378324Z             {
2026-06-09T03:00:38.5378440Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.5378525Z               "line": 182
2026-06-09T03:00:38.5378606Z             }
2026-06-09T03:00:38.5378687Z           ]
2026-06-09T03:00:38.5378770Z         },
2026-06-09T03:00:38.5378850Z         "unit": {
2026-06-09T03:00:38.5378949Z           "complete": true,
2026-06-09T03:00:38.5379036Z           "evidence": [
2026-06-09T03:00:38.5379127Z             {
2026-06-09T03:00:38.5379231Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5379322Z               "line": 421
2026-06-09T03:00:38.5379399Z             },
2026-06-09T03:00:38.5379489Z             {
2026-06-09T03:00:38.5379593Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5379678Z               "line": 454
2026-06-09T03:00:38.5379759Z             }
2026-06-09T03:00:38.5379834Z           ]
2026-06-09T03:00:38.5379919Z         }
2026-06-09T03:00:38.5379995Z       }
2026-06-09T03:00:38.5380077Z     },
2026-06-09T03:00:38.5380153Z     {
2026-06-09T03:00:38.5380243Z       "id": "REQ-START-3",
2026-06-09T03:00:38.5380406Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-09T03:00:38.5380492Z       "requiredStages": [
2026-06-09T03:00:38.5380572Z         "impl",
2026-06-09T03:00:38.5380654Z         "unit",
2026-06-09T03:00:38.5380735Z         "int"
2026-06-09T03:00:38.5380816Z       ],
2026-06-09T03:00:38.5381087Z       "stages": {
2026-06-09T03:00:38.5381173Z         "doc": {
2026-06-09T03:00:38.5381264Z           "complete": false,
2026-06-09T03:00:38.5381351Z           "evidence": []
2026-06-09T03:00:38.5381426Z         },
2026-06-09T03:00:38.5381511Z         "impl": {
2026-06-09T03:00:38.5381608Z           "complete": true,
2026-06-09T03:00:38.5381689Z           "evidence": [
2026-06-09T03:00:38.5381769Z             {
2026-06-09T03:00:38.5381883Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.5381971Z               "line": 23
2026-06-09T03:00:38.5382050Z             },
2026-06-09T03:00:38.5382131Z             {
2026-06-09T03:00:38.5382245Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.5382330Z               "line": 205
2026-06-09T03:00:38.5382409Z             },
2026-06-09T03:00:38.5382490Z             {
2026-06-09T03:00:38.5382600Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.5382692Z               "line": 221
2026-06-09T03:00:38.5382776Z             },
2026-06-09T03:00:38.5382857Z             {
2026-06-09T03:00:38.5382958Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5383049Z               "line": 17
2026-06-09T03:00:38.5383129Z             },
2026-06-09T03:00:38.5383206Z             {
2026-06-09T03:00:38.5383311Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5383401Z               "line": 43
2026-06-09T03:00:38.5383482Z             },
2026-06-09T03:00:38.5383565Z             {
2026-06-09T03:00:38.5383668Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5383749Z               "line": 101
2026-06-09T03:00:38.5383831Z             }
2026-06-09T03:00:38.5383912Z           ]
2026-06-09T03:00:38.5383993Z         },
2026-06-09T03:00:38.5384074Z         "int": {
2026-06-09T03:00:38.5384160Z           "complete": true,
2026-06-09T03:00:38.5384246Z           "evidence": [
2026-06-09T03:00:38.5384321Z             {
2026-06-09T03:00:38.5384440Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T03:00:38.5384523Z               "line": 436
2026-06-09T03:00:38.5384603Z             }
2026-06-09T03:00:38.5384683Z           ]
2026-06-09T03:00:38.5384760Z         },
2026-06-09T03:00:38.5384843Z         "unit": {
2026-06-09T03:00:38.5384928Z           "complete": true,
2026-06-09T03:00:38.5385012Z           "evidence": [
2026-06-09T03:00:38.5385093Z             {
2026-06-09T03:00:38.5385204Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.5385284Z               "line": 331
2026-06-09T03:00:38.5385364Z             },
2026-06-09T03:00:38.5385441Z             {
2026-06-09T03:00:38.5385551Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.5385636Z               "line": 352
2026-06-09T03:00:38.5385712Z             },
2026-06-09T03:00:38.5385795Z             {
2026-06-09T03:00:38.5385904Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T03:00:38.5386003Z               "line": 362
2026-06-09T03:00:38.5386085Z             },
2026-06-09T03:00:38.5386162Z             {
2026-06-09T03:00:38.5386266Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5386346Z               "line": 422
2026-06-09T03:00:38.5386424Z             },
2026-06-09T03:00:38.5386505Z             {
2026-06-09T03:00:38.5386605Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5386690Z               "line": 455
2026-06-09T03:00:38.5386768Z             },
2026-06-09T03:00:38.5386848Z             {
2026-06-09T03:00:38.5387034Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T03:00:38.5387120Z               "line": 463
2026-06-09T03:00:38.5387205Z             }
2026-06-09T03:00:38.5387282Z           ]
2026-06-09T03:00:38.5387359Z         }
2026-06-09T03:00:38.5387440Z       }
2026-06-09T03:00:38.5387519Z     },
2026-06-09T03:00:38.5387595Z     {
2026-06-09T03:00:38.5389668Z       "id": "REQ-START-4",
2026-06-09T03:00:38.5390058Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-09T03:00:38.5390157Z       "requiredStages": [
2026-06-09T03:00:38.5390243Z         "impl",
2026-06-09T03:00:38.5390319Z         "unit"
2026-06-09T03:00:38.5390403Z       ],
2026-06-09T03:00:38.5390484Z       "stages": {
2026-06-09T03:00:38.5390565Z         "doc": {
2026-06-09T03:00:38.5390656Z           "complete": false,
2026-06-09T03:00:38.5390742Z           "evidence": []
2026-06-09T03:00:38.5390827Z         },
2026-06-09T03:00:38.5390908Z         "impl": {
2026-06-09T03:00:38.5390994Z           "complete": true,
2026-06-09T03:00:38.5391080Z           "evidence": [
2026-06-09T03:00:38.5391161Z             {
2026-06-09T03:00:38.5391286Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5391372Z               "line": 391
2026-06-09T03:00:38.5391451Z             }
2026-06-09T03:00:38.5391529Z           ]
2026-06-09T03:00:38.5391610Z         },
2026-06-09T03:00:38.5391686Z         "int": {
2026-06-09T03:00:38.5391790Z           "complete": false,
2026-06-09T03:00:38.5391882Z           "evidence": []
2026-06-09T03:00:38.5391962Z         },
2026-06-09T03:00:38.5392043Z         "unit": {
2026-06-09T03:00:38.5392129Z           "complete": true,
2026-06-09T03:00:38.5392216Z           "evidence": [
2026-06-09T03:00:38.5392291Z             {
2026-06-09T03:00:38.5392405Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T03:00:38.5392492Z               "line": 660
2026-06-09T03:00:38.5392569Z             }
2026-06-09T03:00:38.5392648Z           ]
2026-06-09T03:00:38.5392729Z         }
2026-06-09T03:00:38.5392810Z       }
2026-06-09T03:00:38.5392886Z     },
2026-06-09T03:00:38.5392965Z     {
2026-06-09T03:00:38.5393055Z       "id": "REQ-STORE-1",
2026-06-09T03:00:38.5393857Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-09T03:00:38.5393952Z       "requiredStages": [
2026-06-09T03:00:38.5394037Z         "impl",
2026-06-09T03:00:38.5394120Z         "unit"
2026-06-09T03:00:38.5394200Z       ],
2026-06-09T03:00:38.5394276Z       "stages": {
2026-06-09T03:00:38.5394361Z         "doc": {
2026-06-09T03:00:38.5394449Z           "complete": false,
2026-06-09T03:00:38.5394533Z           "evidence": []
2026-06-09T03:00:38.5394614Z         },
2026-06-09T03:00:38.5394696Z         "impl": {
2026-06-09T03:00:38.5394783Z           "complete": true,
2026-06-09T03:00:38.5394867Z           "evidence": [
2026-06-09T03:00:38.5394943Z             {
2026-06-09T03:00:38.5395069Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5395149Z               "line": 23
2026-06-09T03:00:38.5395239Z             },
2026-06-09T03:00:38.5395315Z             {
2026-06-09T03:00:38.5395436Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5395524Z               "line": 46
2026-06-09T03:00:38.5395610Z             },
2026-06-09T03:00:38.5395686Z             {
2026-06-09T03:00:38.5395797Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5395882Z               "line": 97
2026-06-09T03:00:38.5395962Z             },
2026-06-09T03:00:38.5396040Z             {
2026-06-09T03:00:38.5396150Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5396235Z               "line": 125
2026-06-09T03:00:38.5396316Z             },
2026-06-09T03:00:38.5396397Z             {
2026-06-09T03:00:38.5396511Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5396592Z               "line": 181
2026-06-09T03:00:38.5396675Z             },
2026-06-09T03:00:38.5396755Z             {
2026-06-09T03:00:38.5396869Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5397051Z               "line": 205
2026-06-09T03:00:38.5397319Z             },
2026-06-09T03:00:38.5397403Z             {
2026-06-09T03:00:38.5397527Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5397614Z               "line": 441
2026-06-09T03:00:38.5397695Z             },
2026-06-09T03:00:38.5397775Z             {
2026-06-09T03:00:38.5397900Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5397986Z               "line": 25
2026-06-09T03:00:38.5398065Z             },
2026-06-09T03:00:38.5398141Z             {
2026-06-09T03:00:38.5398270Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5398360Z               "line": 104
2026-06-09T03:00:38.5398440Z             },
2026-06-09T03:00:38.5398519Z             {
2026-06-09T03:00:38.5398640Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5398726Z               "line": 132
2026-06-09T03:00:38.5398806Z             },
2026-06-09T03:00:38.5398883Z             {
2026-06-09T03:00:38.5399002Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5399102Z               "line": 148
2026-06-09T03:00:38.5399183Z             },
2026-06-09T03:00:38.5399274Z             {
2026-06-09T03:00:38.5399403Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5399488Z               "line": 166
2026-06-09T03:00:38.5399565Z             },
2026-06-09T03:00:38.5399646Z             {
2026-06-09T03:00:38.5399760Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5399841Z               "line": 175
2026-06-09T03:00:38.5399923Z             },
2026-06-09T03:00:38.5400003Z             {
2026-06-09T03:00:38.5400118Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T03:00:38.5400200Z               "line": 16
2026-06-09T03:00:38.5400280Z             },
2026-06-09T03:00:38.5400361Z             {
2026-06-09T03:00:38.5400466Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T03:00:38.5400558Z               "line": 63
2026-06-09T03:00:38.5400642Z             }
2026-06-09T03:00:38.5400708Z           ]
2026-06-09T03:00:38.5400783Z         },
2026-06-09T03:00:38.5400860Z         "int": {
2026-06-09T03:00:38.5400954Z           "complete": false,
2026-06-09T03:00:38.5401058Z           "evidence": []
2026-06-09T03:00:38.5401140Z         },
2026-06-09T03:00:38.5401226Z         "unit": {
2026-06-09T03:00:38.5401316Z           "complete": true,
2026-06-09T03:00:38.5401391Z           "evidence": [
2026-06-09T03:00:38.5401464Z             {
2026-06-09T03:00:38.5401583Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5401673Z               "line": 558
2026-06-09T03:00:38.5401774Z             },
2026-06-09T03:00:38.5401851Z             {
2026-06-09T03:00:38.5401964Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5402050Z               "line": 568
2026-06-09T03:00:38.5402132Z             },
2026-06-09T03:00:38.5402208Z             {
2026-06-09T03:00:38.5402336Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5402423Z               "line": 590
2026-06-09T03:00:38.5402504Z             },
2026-06-09T03:00:38.5402579Z             {
2026-06-09T03:00:38.5402694Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5402781Z               "line": 606
2026-06-09T03:00:38.5402861Z             },
2026-06-09T03:00:38.5402942Z             {
2026-06-09T03:00:38.5403057Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T03:00:38.5403143Z               "line": 629
2026-06-09T03:00:38.5403222Z             },
2026-06-09T03:00:38.5403303Z             {
2026-06-09T03:00:38.5403422Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5403507Z               "line": 440
2026-06-09T03:00:38.5403587Z             },
2026-06-09T03:00:38.5403668Z             {
2026-06-09T03:00:38.5403783Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T03:00:38.5403940Z               "line": 475
2026-06-09T03:00:38.5404088Z             },
2026-06-09T03:00:38.5404169Z             {
2026-06-09T03:00:38.5404283Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T03:00:38.5404370Z               "line": 120
2026-06-09T03:00:38.5404445Z             },
2026-06-09T03:00:38.5404530Z             {
2026-06-09T03:00:38.5404641Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T03:00:38.5404727Z               "line": 128
2026-06-09T03:00:38.5404808Z             }
2026-06-09T03:00:38.5404888Z           ]
2026-06-09T03:00:38.5404970Z         }
2026-06-09T03:00:38.5405051Z       }
2026-06-09T03:00:38.5405136Z     },
2026-06-09T03:00:38.5405218Z     {
2026-06-09T03:00:38.5405314Z       "id": "REQ-SUBNET-1",
2026-06-09T03:00:38.5405624Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-09T03:00:38.5405714Z       "requiredStages": [
2026-06-09T03:00:38.5405808Z         "impl",
2026-06-09T03:00:38.5405900Z         "unit"
2026-06-09T03:00:38.5405982Z       ],
2026-06-09T03:00:38.5406061Z       "stages": {
2026-06-09T03:00:38.5406146Z         "doc": {
2026-06-09T03:00:38.5406232Z           "complete": false,
2026-06-09T03:00:38.5406319Z           "evidence": []
2026-06-09T03:00:38.5406399Z         },
2026-06-09T03:00:38.5406480Z         "impl": {
2026-06-09T03:00:38.5406571Z           "complete": true,
2026-06-09T03:00:38.5406653Z           "evidence": [
2026-06-09T03:00:38.5406738Z             {
2026-06-09T03:00:38.5406871Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5407053Z               "line": 265
2026-06-09T03:00:38.5407133Z             },
2026-06-09T03:00:38.5407215Z             {
2026-06-09T03:00:38.5407339Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5407429Z               "line": 571
2026-06-09T03:00:38.5407511Z             },
2026-06-09T03:00:38.5407592Z             {
2026-06-09T03:00:38.5407710Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5407801Z               "line": 2140
2026-06-09T03:00:38.5407879Z             },
2026-06-09T03:00:38.5407963Z             {
2026-06-09T03:00:38.5408058Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5408145Z               "line": 2305
2026-06-09T03:00:38.5408226Z             },
2026-06-09T03:00:38.5408306Z             {
2026-06-09T03:00:38.5408402Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5408489Z               "line": 2324
2026-06-09T03:00:38.5408569Z             },
2026-06-09T03:00:38.5408644Z             {
2026-06-09T03:00:38.5408744Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5408830Z               "line": 2385
2026-06-09T03:00:38.5408910Z             },
2026-06-09T03:00:38.5408990Z             {
2026-06-09T03:00:38.5409089Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5409171Z               "line": 2427
2026-06-09T03:00:38.5409262Z             },
2026-06-09T03:00:38.5409347Z             {
2026-06-09T03:00:38.5409447Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5409529Z               "line": 2600
2026-06-09T03:00:38.5409610Z             },
2026-06-09T03:00:38.5409695Z             {
2026-06-09T03:00:38.5409797Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5409882Z               "line": 2670
2026-06-09T03:00:38.5409963Z             },
2026-06-09T03:00:38.5410043Z             {
2026-06-09T03:00:38.5410139Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5410225Z               "line": 2894
2026-06-09T03:00:38.5410306Z             },
2026-06-09T03:00:38.5410387Z             {
2026-06-09T03:00:38.5410492Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5410577Z               "line": 418
2026-06-09T03:00:38.5410658Z             }
2026-06-09T03:00:38.5410736Z           ]
2026-06-09T03:00:38.5410817Z         },
2026-06-09T03:00:38.5410901Z         "int": {
2026-06-09T03:00:38.5411197Z           "complete": false,
2026-06-09T03:00:38.5411287Z           "evidence": []
2026-06-09T03:00:38.5411368Z         },
2026-06-09T03:00:38.5411453Z         "unit": {
2026-06-09T03:00:38.5411543Z           "complete": true,
2026-06-09T03:00:38.5411628Z           "evidence": [
2026-06-09T03:00:38.5411709Z             {
2026-06-09T03:00:38.5411834Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5411918Z               "line": 1446
2026-06-09T03:00:38.5411995Z             },
2026-06-09T03:00:38.5412082Z             {
2026-06-09T03:00:38.5412177Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5412262Z               "line": 6580
2026-06-09T03:00:38.5412344Z             },
2026-06-09T03:00:38.5412425Z             {
2026-06-09T03:00:38.5412520Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5412605Z               "line": 6750
2026-06-09T03:00:38.5412687Z             },
2026-06-09T03:00:38.5412768Z             {
2026-06-09T03:00:38.5412881Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5412964Z               "line": 6757
2026-06-09T03:00:38.5413050Z             },
2026-06-09T03:00:38.5413129Z             {
2026-06-09T03:00:38.5413225Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5413312Z               "line": 6810
2026-06-09T03:00:38.5413393Z             },
2026-06-09T03:00:38.5413468Z             {
2026-06-09T03:00:38.5413564Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5413651Z               "line": 6827
2026-06-09T03:00:38.5413731Z             },
2026-06-09T03:00:38.5413811Z             {
2026-06-09T03:00:38.5413910Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5413992Z               "line": 6841
2026-06-09T03:00:38.5414076Z             },
2026-06-09T03:00:38.5414151Z             {
2026-06-09T03:00:38.5414252Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5414333Z               "line": 6939
2026-06-09T03:00:38.5414433Z             },
2026-06-09T03:00:38.5414514Z             {
2026-06-09T03:00:38.5414615Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5414706Z               "line": 7089
2026-06-09T03:00:38.5414781Z             }
2026-06-09T03:00:38.5414862Z           ]
2026-06-09T03:00:38.5414944Z         }
2026-06-09T03:00:38.5415024Z       }
2026-06-09T03:00:38.5415105Z     },
2026-06-09T03:00:38.5415186Z     {
2026-06-09T03:00:38.5415273Z       "id": "REQ-SUBNET-2",
2026-06-09T03:00:38.5415491Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-09T03:00:38.5415584Z       "requiredStages": [
2026-06-09T03:00:38.5415668Z         "impl",
2026-06-09T03:00:38.5415749Z         "unit",
2026-06-09T03:00:38.5415831Z         "int"
2026-06-09T03:00:38.5415913Z       ],
2026-06-09T03:00:38.5415996Z       "stages": {
2026-06-09T03:00:38.5416073Z         "doc": {
2026-06-09T03:00:38.5416165Z           "complete": true,
2026-06-09T03:00:38.5416251Z           "evidence": [
2026-06-09T03:00:38.5416335Z             {
2026-06-09T03:00:38.5416490Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-09T03:00:38.5416571Z               "line": 60
2026-06-09T03:00:38.5416654Z             }
2026-06-09T03:00:38.5416730Z           ]
2026-06-09T03:00:38.5416811Z         },
2026-06-09T03:00:38.5416893Z         "impl": {
2026-06-09T03:00:38.5417068Z           "complete": true,
2026-06-09T03:00:38.5417155Z           "evidence": [
2026-06-09T03:00:38.5417236Z             {
2026-06-09T03:00:38.5417350Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.5417436Z               "line": 548
2026-06-09T03:00:38.5417513Z             },
2026-06-09T03:00:38.5417594Z             {
2026-06-09T03:00:38.5417708Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T03:00:38.5417795Z               "line": 636
2026-06-09T03:00:38.5417875Z             },
2026-06-09T03:00:38.5417951Z             {
2026-06-09T03:00:38.5418256Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.5418342Z               "line": 448
2026-06-09T03:00:38.5418424Z             },
2026-06-09T03:00:38.5418505Z             {
2026-06-09T03:00:38.5418618Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T03:00:38.5418700Z               "line": 578
2026-06-09T03:00:38.5418782Z             },
2026-06-09T03:00:38.5418862Z             {
2026-06-09T03:00:38.5418981Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5419068Z               "line": 26
2026-06-09T03:00:38.5419144Z             },
2026-06-09T03:00:38.5419228Z             {
2026-06-09T03:00:38.5419337Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5419424Z               "line": 60
2026-06-09T03:00:38.5419503Z             },
2026-06-09T03:00:38.5419583Z             {
2026-06-09T03:00:38.5419693Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5419784Z               "line": 168
2026-06-09T03:00:38.5419874Z             },
2026-06-09T03:00:38.5419954Z             {
2026-06-09T03:00:38.5420065Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5420146Z               "line": 295
2026-06-09T03:00:38.5420231Z             },
2026-06-09T03:00:38.5420313Z             {
2026-06-09T03:00:38.5420418Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5420503Z               "line": 417
2026-06-09T03:00:38.5420584Z             },
2026-06-09T03:00:38.5420672Z             {
2026-06-09T03:00:38.5420795Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T03:00:38.5420880Z               "line": 252
2026-06-09T03:00:38.5420961Z             },
2026-06-09T03:00:38.5421038Z             {
2026-06-09T03:00:38.5421142Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5421223Z               "line": 2351
2026-06-09T03:00:38.5421306Z             },
2026-06-09T03:00:38.5421386Z             {
2026-06-09T03:00:38.5421496Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5421582Z               "line": 2833
2026-06-09T03:00:38.5421659Z             },
2026-06-09T03:00:38.5421738Z             {
2026-06-09T03:00:38.5421833Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5421913Z               "line": 3456
2026-06-09T03:00:38.5421995Z             }
2026-06-09T03:00:38.5422074Z           ]
2026-06-09T03:00:38.5422154Z         },
2026-06-09T03:00:38.5422235Z         "int": {
2026-06-09T03:00:38.5422323Z           "complete": true,
2026-06-09T03:00:38.5422408Z           "evidence": [
2026-06-09T03:00:38.5422488Z             {
2026-06-09T03:00:38.5422603Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-09T03:00:38.5422689Z               "line": 22
2026-06-09T03:00:38.5422770Z             },
2026-06-09T03:00:38.5422846Z             {
2026-06-09T03:00:38.5422966Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5423052Z               "line": 574
2026-06-09T03:00:38.5423136Z             },
2026-06-09T03:00:38.5423219Z             {
2026-06-09T03:00:38.5423333Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5423423Z               "line": 791
2026-06-09T03:00:38.5423500Z             }
2026-06-09T03:00:38.5423577Z           ]
2026-06-09T03:00:38.5423657Z         },
2026-06-09T03:00:38.5423743Z         "unit": {
2026-06-09T03:00:38.5423829Z           "complete": true,
2026-06-09T03:00:38.5423915Z           "evidence": [
2026-06-09T03:00:38.5423995Z             {
2026-06-09T03:00:38.5424105Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5424192Z               "line": 586
2026-06-09T03:00:38.5424273Z             },
2026-06-09T03:00:38.5424357Z             {
2026-06-09T03:00:38.5424452Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5424538Z               "line": 6620
2026-06-09T03:00:38.5424618Z             },
2026-06-09T03:00:38.5424697Z             {
2026-06-09T03:00:38.5424933Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5425017Z               "line": 7219
2026-06-09T03:00:38.5425102Z             }
2026-06-09T03:00:38.5425180Z           ]
2026-06-09T03:00:38.5425261Z         }
2026-06-09T03:00:38.5425341Z       }
2026-06-09T03:00:38.5425417Z     },
2026-06-09T03:00:38.5425500Z     {
2026-06-09T03:00:38.5425584Z       "id": "REQ-SUBNET-3",
2026-06-09T03:00:38.5425843Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-09T03:00:38.5425938Z       "requiredStages": [
2026-06-09T03:00:38.5426018Z         "impl",
2026-06-09T03:00:38.5426100Z         "unit"
2026-06-09T03:00:38.5426177Z       ],
2026-06-09T03:00:38.5426261Z       "stages": {
2026-06-09T03:00:38.5426342Z         "doc": {
2026-06-09T03:00:38.5426434Z           "complete": false,
2026-06-09T03:00:38.5426520Z           "evidence": []
2026-06-09T03:00:38.5426595Z         },
2026-06-09T03:00:38.5426681Z         "impl": {
2026-06-09T03:00:38.5426782Z           "complete": true,
2026-06-09T03:00:38.5426867Z           "evidence": [
2026-06-09T03:00:38.5427040Z             {
2026-06-09T03:00:38.5427163Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5427252Z               "line": 152
2026-06-09T03:00:38.5427328Z             },
2026-06-09T03:00:38.5427410Z             {
2026-06-09T03:00:38.5427525Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5427610Z               "line": 283
2026-06-09T03:00:38.5427687Z             },
2026-06-09T03:00:38.5427768Z             {
2026-06-09T03:00:38.5427886Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5427967Z               "line": 413
2026-06-09T03:00:38.5428045Z             },
2026-06-09T03:00:38.5428130Z             {
2026-06-09T03:00:38.5428249Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5428326Z               "line": 452
2026-06-09T03:00:38.5428421Z             },
2026-06-09T03:00:38.5428497Z             {
2026-06-09T03:00:38.5428611Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5428693Z               "line": 125
2026-06-09T03:00:38.5428792Z             },
2026-06-09T03:00:38.5428878Z             {
2026-06-09T03:00:38.5428994Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5429079Z               "line": 237
2026-06-09T03:00:38.5429150Z             },
2026-06-09T03:00:38.5429227Z             {
2026-06-09T03:00:38.5429370Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5429450Z               "line": 248
2026-06-09T03:00:38.5429537Z             },
2026-06-09T03:00:38.5429618Z             {
2026-06-09T03:00:38.5429727Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5429812Z               "line": 269
2026-06-09T03:00:38.5429892Z             },
2026-06-09T03:00:38.5429974Z             {
2026-06-09T03:00:38.5430086Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5430176Z               "line": 573
2026-06-09T03:00:38.5430258Z             },
2026-06-09T03:00:38.5430335Z             {
2026-06-09T03:00:38.5430448Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5430529Z               "line": 632
2026-06-09T03:00:38.5430612Z             },
2026-06-09T03:00:38.5430692Z             {
2026-06-09T03:00:38.5430806Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.5430892Z               "line": 61
2026-06-09T03:00:38.5430973Z             },
2026-06-09T03:00:38.5431054Z             {
2026-06-09T03:00:38.5431163Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.5431251Z               "line": 90
2026-06-09T03:00:38.5431326Z             },
2026-06-09T03:00:38.5431407Z             {
2026-06-09T03:00:38.5431522Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.5431703Z               "line": 125
2026-06-09T03:00:38.5431885Z             },
2026-06-09T03:00:38.5431965Z             {
2026-06-09T03:00:38.5432074Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-09T03:00:38.5432156Z               "line": 9
2026-06-09T03:00:38.5432238Z             },
2026-06-09T03:00:38.5432317Z             {
2026-06-09T03:00:38.5432421Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5432508Z               "line": 2670
2026-06-09T03:00:38.5432588Z             },
2026-06-09T03:00:38.5432667Z             {
2026-06-09T03:00:38.5432772Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5432858Z               "line": 445
2026-06-09T03:00:38.5432944Z             }
2026-06-09T03:00:38.5433020Z           ]
2026-06-09T03:00:38.5433106Z         },
2026-06-09T03:00:38.5433188Z         "int": {
2026-06-09T03:00:38.5433278Z           "complete": false,
2026-06-09T03:00:38.5433363Z           "evidence": []
2026-06-09T03:00:38.5433444Z         },
2026-06-09T03:00:38.5433545Z         "unit": {
2026-06-09T03:00:38.5433635Z           "complete": true,
2026-06-09T03:00:38.5433725Z           "evidence": [
2026-06-09T03:00:38.5433803Z             {
2026-06-09T03:00:38.5433921Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5434007Z               "line": 1273
2026-06-09T03:00:38.5434089Z             },
2026-06-09T03:00:38.5434170Z             {
2026-06-09T03:00:38.5434288Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5434374Z               "line": 1575
2026-06-09T03:00:38.5434456Z             },
2026-06-09T03:00:38.5434536Z             {
2026-06-09T03:00:38.5434651Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5434738Z               "line": 884
2026-06-09T03:00:38.5434823Z             },
2026-06-09T03:00:38.5434898Z             {
2026-06-09T03:00:38.5435012Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5435098Z               "line": 941
2026-06-09T03:00:38.5435192Z             },
2026-06-09T03:00:38.5435271Z             {
2026-06-09T03:00:38.5435392Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5435473Z               "line": 990
2026-06-09T03:00:38.5435553Z             },
2026-06-09T03:00:38.5435634Z             {
2026-06-09T03:00:38.5435745Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5435836Z               "line": 1049
2026-06-09T03:00:38.5435920Z             },
2026-06-09T03:00:38.5435997Z             {
2026-06-09T03:00:38.5436117Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T03:00:38.5436197Z               "line": 233
2026-06-09T03:00:38.5436283Z             },
2026-06-09T03:00:38.5436365Z             {
2026-06-09T03:00:38.5436483Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-09T03:00:38.5436568Z               "line": 49
2026-06-09T03:00:38.5436656Z             },
2026-06-09T03:00:38.5436737Z             {
2026-06-09T03:00:38.5436851Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5436936Z               "line": 6939
2026-06-09T03:00:38.5437108Z             },
2026-06-09T03:00:38.5437189Z             {
2026-06-09T03:00:38.5437290Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5437371Z               "line": 7044
2026-06-09T03:00:38.5437460Z             },
2026-06-09T03:00:38.5437542Z             {
2026-06-09T03:00:38.5437638Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5437724Z               "line": 7185
2026-06-09T03:00:38.5437803Z             }
2026-06-09T03:00:38.5437884Z           ]
2026-06-09T03:00:38.5437965Z         }
2026-06-09T03:00:38.5438046Z       }
2026-06-09T03:00:38.5438127Z     },
2026-06-09T03:00:38.5438208Z     {
2026-06-09T03:00:38.5438300Z       "id": "REQ-SUBNET-4",
2026-06-09T03:00:38.5438571Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-09T03:00:38.5438856Z       "requiredStages": [
2026-06-09T03:00:38.5438939Z         "impl",
2026-06-09T03:00:38.5439023Z         "unit"
2026-06-09T03:00:38.5439104Z       ],
2026-06-09T03:00:38.5439191Z       "stages": {
2026-06-09T03:00:38.5439268Z         "doc": {
2026-06-09T03:00:38.5439357Z           "complete": true,
2026-06-09T03:00:38.5439448Z           "evidence": [
2026-06-09T03:00:38.5439525Z             {
2026-06-09T03:00:38.5439676Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-09T03:00:38.5439762Z               "line": 60
2026-06-09T03:00:38.5439845Z             }
2026-06-09T03:00:38.5439926Z           ]
2026-06-09T03:00:38.5440005Z         },
2026-06-09T03:00:38.5440092Z         "impl": {
2026-06-09T03:00:38.5440179Z           "complete": true,
2026-06-09T03:00:38.5440264Z           "evidence": [
2026-06-09T03:00:38.5440343Z             {
2026-06-09T03:00:38.5440452Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5440534Z               "line": 2140
2026-06-09T03:00:38.5440628Z             },
2026-06-09T03:00:38.5440708Z             {
2026-06-09T03:00:38.5440809Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5440895Z               "line": 3423
2026-06-09T03:00:38.5440975Z             },
2026-06-09T03:00:38.5441056Z             {
2026-06-09T03:00:38.5441152Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5441238Z               "line": 3456
2026-06-09T03:00:38.5441323Z             }
2026-06-09T03:00:38.5441399Z           ]
2026-06-09T03:00:38.5441482Z         },
2026-06-09T03:00:38.5441562Z         "int": {
2026-06-09T03:00:38.5441647Z           "complete": false,
2026-06-09T03:00:38.5441728Z           "evidence": []
2026-06-09T03:00:38.5441806Z         },
2026-06-09T03:00:38.5441886Z         "unit": {
2026-06-09T03:00:38.5441972Z           "complete": true,
2026-06-09T03:00:38.5442063Z           "evidence": [
2026-06-09T03:00:38.5442135Z             {
2026-06-09T03:00:38.5442234Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5442382Z               "line": 6736
2026-06-09T03:00:38.5442474Z             },
2026-06-09T03:00:38.5442553Z             {
2026-06-09T03:00:38.5442654Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5442736Z               "line": 6810
2026-06-09T03:00:38.5442816Z             }
2026-06-09T03:00:38.5442896Z           ]
2026-06-09T03:00:38.5442981Z         }
2026-06-09T03:00:38.5443063Z       }
2026-06-09T03:00:38.5443143Z     },
2026-06-09T03:00:38.5443223Z     {
2026-06-09T03:00:38.5443317Z       "id": "REQ-SUBNET-5",
2026-06-09T03:00:38.5444467Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-09T03:00:38.5444572Z       "requiredStages": [
2026-06-09T03:00:38.5444664Z         "impl",
2026-06-09T03:00:38.5444744Z         "unit",
2026-06-09T03:00:38.5444829Z         "int"
2026-06-09T03:00:38.5444910Z       ],
2026-06-09T03:00:38.5444993Z       "stages": {
2026-06-09T03:00:38.5445078Z         "doc": {
2026-06-09T03:00:38.5445168Z           "complete": false,
2026-06-09T03:00:38.5445264Z           "evidence": []
2026-06-09T03:00:38.5445341Z         },
2026-06-09T03:00:38.5445425Z         "impl": {
2026-06-09T03:00:38.5445510Z           "complete": true,
2026-06-09T03:00:38.5445595Z           "evidence": [
2026-06-09T03:00:38.5445677Z             {
2026-06-09T03:00:38.5445794Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T03:00:38.5445884Z               "line": 126
2026-06-09T03:00:38.5445961Z             },
2026-06-09T03:00:38.5446048Z             {
2026-06-09T03:00:38.5446165Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T03:00:38.5446257Z               "line": 413
2026-06-09T03:00:38.5446414Z             },
2026-06-09T03:00:38.5446566Z             {
2026-06-09T03:00:38.5446682Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5446771Z               "line": 74
2026-06-09T03:00:38.5446852Z             },
2026-06-09T03:00:38.5446929Z             {
2026-06-09T03:00:38.5447133Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5447216Z               "line": 357
2026-06-09T03:00:38.5447306Z             },
2026-06-09T03:00:38.5447386Z             {
2026-06-09T03:00:38.5447506Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T03:00:38.5447597Z               "line": 31
2026-06-09T03:00:38.5447682Z             },
2026-06-09T03:00:38.5447763Z             {
2026-06-09T03:00:38.5447874Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T03:00:38.5447964Z               "line": 50
2026-06-09T03:00:38.5448043Z             },
2026-06-09T03:00:38.5448126Z             {
2026-06-09T03:00:38.5448251Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T03:00:38.5448340Z               "line": 69
2026-06-09T03:00:38.5448420Z             },
2026-06-09T03:00:38.5448502Z             {
2026-06-09T03:00:38.5448616Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T03:00:38.5448706Z               "line": 113
2026-06-09T03:00:38.5448782Z             },
2026-06-09T03:00:38.5448870Z             {
2026-06-09T03:00:38.5448988Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-09T03:00:38.5449073Z               "line": 25
2026-06-09T03:00:38.5449160Z             },
2026-06-09T03:00:38.5449241Z             {
2026-06-09T03:00:38.5449359Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-09T03:00:38.5449441Z               "line": 34
2026-06-09T03:00:38.5449528Z             },
2026-06-09T03:00:38.5449608Z             {
2026-06-09T03:00:38.5449722Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T03:00:38.5449809Z               "line": 17
2026-06-09T03:00:38.5449912Z             },
2026-06-09T03:00:38.5449993Z             {
2026-06-09T03:00:38.5450095Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5450186Z               "line": 3381
2026-06-09T03:00:38.5450265Z             },
2026-06-09T03:00:38.5450347Z             {
2026-06-09T03:00:38.5450453Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T03:00:38.5450538Z               "line": 419
2026-06-09T03:00:38.5450623Z             }
2026-06-09T03:00:38.5450700Z           ]
2026-06-09T03:00:38.5450782Z         },
2026-06-09T03:00:38.5450866Z         "int": {
2026-06-09T03:00:38.5450961Z           "complete": true,
2026-06-09T03:00:38.5451047Z           "evidence": [
2026-06-09T03:00:38.5451128Z             {
2026-06-09T03:00:38.5451244Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5451330Z               "line": 813
2026-06-09T03:00:38.5451412Z             }
2026-06-09T03:00:38.5451493Z           ]
2026-06-09T03:00:38.5451578Z         },
2026-06-09T03:00:38.5451669Z         "unit": {
2026-06-09T03:00:38.5451760Z           "complete": true,
2026-06-09T03:00:38.5453840Z           "evidence": [
2026-06-09T03:00:38.5453940Z             {
2026-06-09T03:00:38.5454074Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.5454169Z               "line": 341
2026-06-09T03:00:38.5454250Z             },
2026-06-09T03:00:38.5454341Z             {
2026-06-09T03:00:38.5454473Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T03:00:38.5454565Z               "line": 151
2026-06-09T03:00:38.5454646Z             },
2026-06-09T03:00:38.5454732Z             {
2026-06-09T03:00:38.5454855Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-09T03:00:38.5454942Z               "line": 61
2026-06-09T03:00:38.5455027Z             },
2026-06-09T03:00:38.5455108Z             {
2026-06-09T03:00:38.5455228Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T03:00:38.5455447Z               "line": 111
2026-06-09T03:00:38.5455624Z             },
2026-06-09T03:00:38.5455704Z             {
2026-06-09T03:00:38.5455829Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T03:00:38.5455915Z               "line": 138
2026-06-09T03:00:38.5455995Z             },
2026-06-09T03:00:38.5456075Z             {
2026-06-09T03:00:38.5456195Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T03:00:38.5456279Z               "line": 148
2026-06-09T03:00:38.5456364Z             },
2026-06-09T03:00:38.5456444Z             {
2026-06-09T03:00:38.5456550Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5456641Z               "line": 6637
2026-06-09T03:00:38.5456721Z             }
2026-06-09T03:00:38.5456812Z           ]
2026-06-09T03:00:38.5456893Z         }
2026-06-09T03:00:38.5457069Z       }
2026-06-09T03:00:38.5457156Z     },
2026-06-09T03:00:38.5457242Z     {
2026-06-09T03:00:38.5457331Z       "id": "REQ-SUBNET-6",
2026-06-09T03:00:38.5458009Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-09T03:00:38.5458115Z       "requiredStages": [
2026-06-09T03:00:38.5458200Z         "impl",
2026-06-09T03:00:38.5458285Z         "unit"
2026-06-09T03:00:38.5458366Z       ],
2026-06-09T03:00:38.5458449Z       "stages": {
2026-06-09T03:00:38.5458534Z         "doc": {
2026-06-09T03:00:38.5458628Z           "complete": false,
2026-06-09T03:00:38.5458715Z           "evidence": []
2026-06-09T03:00:38.5458797Z         },
2026-06-09T03:00:38.5458881Z         "impl": {
2026-06-09T03:00:38.5458970Z           "complete": true,
2026-06-09T03:00:38.5459057Z           "evidence": [
2026-06-09T03:00:38.5459139Z             {
2026-06-09T03:00:38.5459261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5459357Z               "line": 238
2026-06-09T03:00:38.5459449Z             },
2026-06-09T03:00:38.5459529Z             {
2026-06-09T03:00:38.5459633Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5459725Z               "line": 3039
2026-06-09T03:00:38.5459806Z             },
2026-06-09T03:00:38.5459886Z             {
2026-06-09T03:00:38.5459986Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5460073Z               "line": 3056
2026-06-09T03:00:38.5460153Z             },
2026-06-09T03:00:38.5460229Z             {
2026-06-09T03:00:38.5460335Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5460426Z               "line": 3109
2026-06-09T03:00:38.5460506Z             },
2026-06-09T03:00:38.5460587Z             {
2026-06-09T03:00:38.5460684Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5460769Z               "line": 3132
2026-06-09T03:00:38.5460850Z             }
2026-06-09T03:00:38.5460931Z           ]
2026-06-09T03:00:38.5461008Z         },
2026-06-09T03:00:38.5461103Z         "int": {
2026-06-09T03:00:38.5461188Z           "complete": false,
2026-06-09T03:00:38.5461275Z           "evidence": []
2026-06-09T03:00:38.5461356Z         },
2026-06-09T03:00:38.5461440Z         "unit": {
2026-06-09T03:00:38.5461525Z           "complete": true,
2026-06-09T03:00:38.5461612Z           "evidence": [
2026-06-09T03:00:38.5461693Z             {
2026-06-09T03:00:38.5461781Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5461866Z               "line": 6651
2026-06-09T03:00:38.5461948Z             },
2026-06-09T03:00:38.5462024Z             {
2026-06-09T03:00:38.5462119Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5462200Z               "line": 6684
2026-06-09T03:00:38.5462311Z             },
2026-06-09T03:00:38.5462397Z             {
2026-06-09T03:00:38.5462496Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5462582Z               "line": 6693
2026-06-09T03:00:38.5462663Z             }
2026-06-09T03:00:38.5462926Z           ]
2026-06-09T03:00:38.5463002Z         }
2026-06-09T03:00:38.5463083Z       }
2026-06-09T03:00:38.5463159Z     },
2026-06-09T03:00:38.5463236Z     {
2026-06-09T03:00:38.5463321Z       "id": "REQ-SUBNET-7",
2026-06-09T03:00:38.5464864Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-09T03:00:38.5464959Z       "requiredStages": [
2026-06-09T03:00:38.5465043Z         "impl",
2026-06-09T03:00:38.5465125Z         "unit"
2026-06-09T03:00:38.5465202Z       ],
2026-06-09T03:00:38.5465306Z       "stages": {
2026-06-09T03:00:38.5465387Z         "doc": {
2026-06-09T03:00:38.5465474Z           "complete": false,
2026-06-09T03:00:38.5465563Z           "evidence": []
2026-06-09T03:00:38.5465644Z         },
2026-06-09T03:00:38.5465730Z         "impl": {
2026-06-09T03:00:38.5465818Z           "complete": true,
2026-06-09T03:00:38.5465902Z           "evidence": [
2026-06-09T03:00:38.5465988Z             {
2026-06-09T03:00:38.5466108Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-09T03:00:38.5466193Z               "line": 17
2026-06-09T03:00:38.5466279Z             },
2026-06-09T03:00:38.5466360Z             {
2026-06-09T03:00:38.5466480Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5466564Z               "line": 103
2026-06-09T03:00:38.5466644Z             },
2026-06-09T03:00:38.5466726Z             {
2026-06-09T03:00:38.5466844Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T03:00:38.5466929Z               "line": 312
2026-06-09T03:00:38.5467115Z             },
2026-06-09T03:00:38.5467196Z             {
2026-06-09T03:00:38.5467324Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5467406Z               "line": 388
2026-06-09T03:00:38.5467482Z             },
2026-06-09T03:00:38.5467577Z             {
2026-06-09T03:00:38.5467721Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5467806Z               "line": 160
2026-06-09T03:00:38.5467891Z             },
2026-06-09T03:00:38.5467968Z             {
2026-06-09T03:00:38.5468097Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5468178Z               "line": 417
2026-06-09T03:00:38.5468263Z             },
2026-06-09T03:00:38.5468346Z             {
2026-06-09T03:00:38.5468459Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5468550Z               "line": 590
2026-06-09T03:00:38.5468631Z             },
2026-06-09T03:00:38.5468713Z             {
2026-06-09T03:00:38.5468850Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5468936Z               "line": 630
2026-06-09T03:00:38.5469023Z             },
2026-06-09T03:00:38.5469102Z             {
2026-06-09T03:00:38.5469222Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5469309Z               "line": 686
2026-06-09T03:00:38.5469389Z             },
2026-06-09T03:00:38.5469474Z             {
2026-06-09T03:00:38.5469597Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5469685Z               "line": 136
2026-06-09T03:00:38.5469765Z             },
2026-06-09T03:00:38.5469845Z             {
2026-06-09T03:00:38.5469961Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5470046Z               "line": 139
2026-06-09T03:00:38.5470132Z             }
2026-06-09T03:00:38.5470208Z           ]
2026-06-09T03:00:38.5470290Z         },
2026-06-09T03:00:38.5470371Z         "int": {
2026-06-09T03:00:38.5470648Z           "complete": false,
2026-06-09T03:00:38.5470738Z           "evidence": []
2026-06-09T03:00:38.5470822Z         },
2026-06-09T03:00:38.5470905Z         "unit": {
2026-06-09T03:00:38.5471000Z           "complete": true,
2026-06-09T03:00:38.5471105Z           "evidence": [
2026-06-09T03:00:38.5471186Z             {
2026-06-09T03:00:38.5471301Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-09T03:00:38.5471390Z               "line": 136
2026-06-09T03:00:38.5471472Z             },
2026-06-09T03:00:38.5471559Z             {
2026-06-09T03:00:38.5471672Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-09T03:00:38.5471758Z               "line": 156
2026-06-09T03:00:38.5471840Z             },
2026-06-09T03:00:38.5471921Z             {
2026-06-09T03:00:38.5472043Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5472128Z               "line": 905
2026-06-09T03:00:38.5472214Z             },
2026-06-09T03:00:38.5472309Z             {
2026-06-09T03:00:38.5472440Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T03:00:38.5472522Z               "line": 927
2026-06-09T03:00:38.5472603Z             },
2026-06-09T03:00:38.5472684Z             {
2026-06-09T03:00:38.5472808Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T03:00:38.5472895Z               "line": 1419
2026-06-09T03:00:38.5472975Z             },
2026-06-09T03:00:38.5473060Z             {
2026-06-09T03:00:38.5473176Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T03:00:38.5473261Z               "line": 985
2026-06-09T03:00:38.5473342Z             }
2026-06-09T03:00:38.5473428Z           ]
2026-06-09T03:00:38.5473505Z         }
2026-06-09T03:00:38.5473585Z       }
2026-06-09T03:00:38.5473671Z     },
2026-06-09T03:00:38.5473747Z     {
2026-06-09T03:00:38.5473839Z       "id": "REQ-SUBNET-8",
2026-06-09T03:00:38.5474894Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-09T03:00:38.5474998Z       "requiredStages": [
2026-06-09T03:00:38.5475084Z         "impl",
2026-06-09T03:00:38.5475165Z         "unit"
2026-06-09T03:00:38.5475246Z       ],
2026-06-09T03:00:38.5475331Z       "stages": {
2026-06-09T03:00:38.5475414Z         "doc": {
2026-06-09T03:00:38.5475509Z           "complete": false,
2026-06-09T03:00:38.5475593Z           "evidence": []
2026-06-09T03:00:38.5475675Z         },
2026-06-09T03:00:38.5475757Z         "impl": {
2026-06-09T03:00:38.5475848Z           "complete": true,
2026-06-09T03:00:38.5475937Z           "evidence": [
2026-06-09T03:00:38.5476015Z             {
2026-06-09T03:00:38.5476119Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5476219Z               "line": 2428
2026-06-09T03:00:38.5476300Z             },
2026-06-09T03:00:38.5476382Z             {
2026-06-09T03:00:38.5476481Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5476567Z               "line": 2457
2026-06-09T03:00:38.5476649Z             },
2026-06-09T03:00:38.5476735Z             {
2026-06-09T03:00:38.5476829Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5476920Z               "line": 2474
2026-06-09T03:00:38.5477077Z             },
2026-06-09T03:00:38.5477153Z             {
2026-06-09T03:00:38.5477247Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5477334Z               "line": 2895
2026-06-09T03:00:38.5477418Z             }
2026-06-09T03:00:38.5477498Z           ]
2026-06-09T03:00:38.5477579Z         },
2026-06-09T03:00:38.5477661Z         "int": {
2026-06-09T03:00:38.5477751Z           "complete": false,
2026-06-09T03:00:38.5477837Z           "evidence": []
2026-06-09T03:00:38.5477923Z         },
2026-06-09T03:00:38.5478194Z         "unit": {
2026-06-09T03:00:38.5478286Z           "complete": true,
2026-06-09T03:00:38.5478371Z           "evidence": [
2026-06-09T03:00:38.5478451Z             {
2026-06-09T03:00:38.5478552Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5478638Z               "line": 6841
2026-06-09T03:00:38.5478719Z             }
2026-06-09T03:00:38.5478804Z           ]
2026-06-09T03:00:38.5478891Z         }
2026-06-09T03:00:38.5478972Z       }
2026-06-09T03:00:38.5479052Z     },
2026-06-09T03:00:38.5479134Z     {
2026-06-09T03:00:38.5479220Z       "id": "REQ-TERM-1",
2026-06-09T03:00:38.5479386Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-09T03:00:38.5479477Z       "requiredStages": [
2026-06-09T03:00:38.5479559Z         "impl",
2026-06-09T03:00:38.5479644Z         "unit"
2026-06-09T03:00:38.5479724Z       ],
2026-06-09T03:00:38.5479811Z       "stages": {
2026-06-09T03:00:38.5479894Z         "doc": {
2026-06-09T03:00:38.5479996Z           "complete": false,
2026-06-09T03:00:38.5480090Z           "evidence": []
2026-06-09T03:00:38.5480172Z         },
2026-06-09T03:00:38.5480259Z         "impl": {
2026-06-09T03:00:38.5480349Z           "complete": true,
2026-06-09T03:00:38.5480433Z           "evidence": [
2026-06-09T03:00:38.5480516Z             {
2026-06-09T03:00:38.5480631Z               "path": "crates/spt-term/src/pty.rs",
2026-06-09T03:00:38.5480716Z               "line": 59
2026-06-09T03:00:38.5480797Z             },
2026-06-09T03:00:38.5480878Z             {
2026-06-09T03:00:38.5480983Z               "path": "crates/spt-term/src/pty.rs",
2026-06-09T03:00:38.5481068Z               "line": 171
2026-06-09T03:00:38.5481151Z             },
2026-06-09T03:00:38.5481231Z             {
2026-06-09T03:00:38.5481345Z               "path": "crates/spt-term/src/surface.rs",
2026-06-09T03:00:38.5481431Z               "line": 100
2026-06-09T03:00:38.5481517Z             }
2026-06-09T03:00:38.5481598Z           ]
2026-06-09T03:00:38.5481684Z         },
2026-06-09T03:00:38.5481785Z         "int": {
2026-06-09T03:00:38.5481875Z           "complete": false,
2026-06-09T03:00:38.5481965Z           "evidence": []
2026-06-09T03:00:38.5482041Z         },
2026-06-09T03:00:38.5482128Z         "unit": {
2026-06-09T03:00:38.5482218Z           "complete": true,
2026-06-09T03:00:38.5482303Z           "evidence": [
2026-06-09T03:00:38.5482385Z             {
2026-06-09T03:00:38.5482505Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-09T03:00:38.5482594Z               "line": 24
2026-06-09T03:00:38.5482679Z             },
2026-06-09T03:00:38.5482761Z             {
2026-06-09T03:00:38.5482869Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-09T03:00:38.5482953Z               "line": 56
2026-06-09T03:00:38.5483034Z             }
2026-06-09T03:00:38.5483117Z           ]
2026-06-09T03:00:38.5483198Z         }
2026-06-09T03:00:38.5483277Z       }
2026-06-09T03:00:38.5483359Z     },
2026-06-09T03:00:38.5483440Z     {
2026-06-09T03:00:38.5483535Z       "id": "REQ-TERM-2",
2026-06-09T03:00:38.5483712Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-09T03:00:38.5483803Z       "requiredStages": [
2026-06-09T03:00:38.5483888Z         "impl",
2026-06-09T03:00:38.5483969Z         "unit"
2026-06-09T03:00:38.5484051Z       ],
2026-06-09T03:00:38.5484132Z       "stages": {
2026-06-09T03:00:38.5484213Z         "doc": {
2026-06-09T03:00:38.5484303Z           "complete": false,
2026-06-09T03:00:38.5484390Z           "evidence": []
2026-06-09T03:00:38.5484474Z         },
2026-06-09T03:00:38.5484555Z         "impl": {
2026-06-09T03:00:38.5484652Z           "complete": true,
2026-06-09T03:00:38.5484733Z           "evidence": [
2026-06-09T03:00:38.5484817Z             {
2026-06-09T03:00:38.5484918Z               "path": "crates/spt-term/src/surface.rs",
2026-06-09T03:00:38.5485005Z               "line": 117
2026-06-09T03:00:38.5485085Z             },
2026-06-09T03:00:38.5485170Z             {
2026-06-09T03:00:38.5485394Z               "path": "crates/spt-term/src/surface.rs",
2026-06-09T03:00:38.5485544Z               "line": 127
2026-06-09T03:00:38.5485625Z             }
2026-06-09T03:00:38.5485707Z           ]
2026-06-09T03:00:38.5485792Z         },
2026-06-09T03:00:38.5485872Z         "int": {
2026-06-09T03:00:38.5485959Z           "complete": false,
2026-06-09T03:00:38.5486050Z           "evidence": []
2026-06-09T03:00:38.5486130Z         },
2026-06-09T03:00:38.5486216Z         "unit": {
2026-06-09T03:00:38.5486303Z           "complete": true,
2026-06-09T03:00:38.5486393Z           "evidence": [
2026-06-09T03:00:38.5486473Z             {
2026-06-09T03:00:38.5486594Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-09T03:00:38.5486679Z               "line": 46
2026-06-09T03:00:38.5486760Z             },
2026-06-09T03:00:38.5486841Z             {
2026-06-09T03:00:38.5487041Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-09T03:00:38.5487132Z               "line": 77
2026-06-09T03:00:38.5487223Z             }
2026-06-09T03:00:38.5487314Z           ]
2026-06-09T03:00:38.5487394Z         }
2026-06-09T03:00:38.5487475Z       }
2026-06-09T03:00:38.5487557Z     },
2026-06-09T03:00:38.5487633Z     {
2026-06-09T03:00:38.5487727Z       "id": "REQ-TERM-3",
2026-06-09T03:00:38.5487860Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-09T03:00:38.5487951Z       "requiredStages": [
2026-06-09T03:00:38.5488034Z         "impl",
2026-06-09T03:00:38.5488115Z         "unit"
2026-06-09T03:00:38.5488196Z       ],
2026-06-09T03:00:38.5488284Z       "stages": {
2026-06-09T03:00:38.5488363Z         "doc": {
2026-06-09T03:00:38.5488453Z           "complete": false,
2026-06-09T03:00:38.5488541Z           "evidence": []
2026-06-09T03:00:38.5488627Z         },
2026-06-09T03:00:38.5488711Z         "impl": {
2026-06-09T03:00:38.5488803Z           "complete": true,
2026-06-09T03:00:38.5488888Z           "evidence": [
2026-06-09T03:00:38.5488970Z             {
2026-06-09T03:00:38.5489088Z               "path": "crates/spt-term/src/stream.rs",
2026-06-09T03:00:38.5489175Z               "line": 71
2026-06-09T03:00:38.5489260Z             }
2026-06-09T03:00:38.5489340Z           ]
2026-06-09T03:00:38.5489427Z         },
2026-06-09T03:00:38.5489509Z         "int": {
2026-06-09T03:00:38.5489598Z           "complete": false,
2026-06-09T03:00:38.5489684Z           "evidence": []
2026-06-09T03:00:38.5489762Z         },
2026-06-09T03:00:38.5489847Z         "unit": {
2026-06-09T03:00:38.5489932Z           "complete": true,
2026-06-09T03:00:38.5490018Z           "evidence": [
2026-06-09T03:00:38.5490095Z             {
2026-06-09T03:00:38.5490204Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-09T03:00:38.5490294Z               "line": 37
2026-06-09T03:00:38.5490371Z             },
2026-06-09T03:00:38.5490454Z             {
2026-06-09T03:00:38.5490561Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-09T03:00:38.5490642Z               "line": 67
2026-06-09T03:00:38.5490723Z             }
2026-06-09T03:00:38.5490814Z           ]
2026-06-09T03:00:38.5490894Z         }
2026-06-09T03:00:38.5490970Z       }
2026-06-09T03:00:38.5491052Z     },
2026-06-09T03:00:38.5491134Z     {
2026-06-09T03:00:38.5491223Z       "id": "REQ-TERM-4",
2026-06-09T03:00:38.5491548Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-09T03:00:38.5491637Z       "requiredStages": [
2026-06-09T03:00:38.5491721Z         "impl",
2026-06-09T03:00:38.5491800Z         "unit",
2026-06-09T03:00:38.5491886Z         "int"
2026-06-09T03:00:38.5491962Z       ],
2026-06-09T03:00:38.5492050Z       "stages": {
2026-06-09T03:00:38.5492129Z         "doc": {
2026-06-09T03:00:38.5492220Z           "complete": true,
2026-06-09T03:00:38.5492306Z           "evidence": [
2026-06-09T03:00:38.5492383Z             {
2026-06-09T03:00:38.5492482Z               "path": "docs/MANIFEST.md",
2026-06-09T03:00:38.5492563Z               "line": 115
2026-06-09T03:00:38.5492844Z             }
2026-06-09T03:00:38.5492926Z           ]
2026-06-09T03:00:38.5493004Z         },
2026-06-09T03:00:38.5493088Z         "impl": {
2026-06-09T03:00:38.5493177Z           "complete": true,
2026-06-09T03:00:38.5493263Z           "evidence": [
2026-06-09T03:00:38.5493340Z             {
2026-06-09T03:00:38.5493457Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T03:00:38.5493537Z               "line": 507
2026-06-09T03:00:38.5493619Z             },
2026-06-09T03:00:38.5493705Z             {
2026-06-09T03:00:38.5493814Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5493900Z               "line": 41
2026-06-09T03:00:38.5493977Z             },
2026-06-09T03:00:38.5494062Z             {
2026-06-09T03:00:38.5494171Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5494253Z               "line": 91
2026-06-09T03:00:38.5494334Z             },
2026-06-09T03:00:38.5494415Z             {
2026-06-09T03:00:38.5494529Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5494616Z               "line": 152
2026-06-09T03:00:38.5494701Z             },
2026-06-09T03:00:38.5494777Z             {
2026-06-09T03:00:38.5494887Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5494973Z               "line": 221
2026-06-09T03:00:38.5495053Z             },
2026-06-09T03:00:38.5495134Z             {
2026-06-09T03:00:38.5495250Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T03:00:38.5495335Z               "line": 20
2026-06-09T03:00:38.5495421Z             },
2026-06-09T03:00:38.5495498Z             {
2026-06-09T03:00:38.5495613Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T03:00:38.5495697Z               "line": 222
2026-06-09T03:00:38.5495777Z             },
2026-06-09T03:00:38.5495859Z             {
2026-06-09T03:00:38.5495972Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T03:00:38.5496056Z               "line": 242
2026-06-09T03:00:38.5496146Z             },
2026-06-09T03:00:38.5496234Z             {
2026-06-09T03:00:38.5496347Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.5496432Z               "line": 625
2026-06-09T03:00:38.5496510Z             },
2026-06-09T03:00:38.5496591Z             {
2026-06-09T03:00:38.5496700Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5496781Z               "line": 162
2026-06-09T03:00:38.5496863Z             },
2026-06-09T03:00:38.5497038Z             {
2026-06-09T03:00:38.5497145Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5497230Z               "line": 206
2026-06-09T03:00:38.5497306Z             },
2026-06-09T03:00:38.5497387Z             {
2026-06-09T03:00:38.5497493Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5497578Z               "line": 233
2026-06-09T03:00:38.5497659Z             },
2026-06-09T03:00:38.5497740Z             {
2026-06-09T03:00:38.5497860Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5497944Z               "line": 825
2026-06-09T03:00:38.5498026Z             }
2026-06-09T03:00:38.5498108Z           ]
2026-06-09T03:00:38.5498189Z         },
2026-06-09T03:00:38.5498268Z         "int": {
2026-06-09T03:00:38.5498358Z           "complete": true,
2026-06-09T03:00:38.5498439Z           "evidence": [
2026-06-09T03:00:38.5498520Z             {
2026-06-09T03:00:38.5498637Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-09T03:00:38.5498718Z               "line": 18
2026-06-09T03:00:38.5498800Z             }
2026-06-09T03:00:38.5498881Z           ]
2026-06-09T03:00:38.5498961Z         },
2026-06-09T03:00:38.5499043Z         "unit": {
2026-06-09T03:00:38.5499134Z           "complete": true,
2026-06-09T03:00:38.5499220Z           "evidence": [
2026-06-09T03:00:38.5499300Z             {
2026-06-09T03:00:38.5499411Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5499595Z               "line": 259
2026-06-09T03:00:38.5499759Z             },
2026-06-09T03:00:38.5499834Z             {
2026-06-09T03:00:38.5499949Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5500035Z               "line": 277
2026-06-09T03:00:38.5500116Z             },
2026-06-09T03:00:38.5500197Z             {
2026-06-09T03:00:38.5500302Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5500389Z               "line": 289
2026-06-09T03:00:38.5500468Z             },
2026-06-09T03:00:38.5500554Z             {
2026-06-09T03:00:38.5500660Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5500746Z               "line": 304
2026-06-09T03:00:38.5500830Z             },
2026-06-09T03:00:38.5500907Z             {
2026-06-09T03:00:38.5501018Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5501102Z               "line": 320
2026-06-09T03:00:38.5501183Z             },
2026-06-09T03:00:38.5501268Z             {
2026-06-09T03:00:38.5501389Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5501474Z               "line": 346
2026-06-09T03:00:38.5501554Z             },
2026-06-09T03:00:38.5501631Z             {
2026-06-09T03:00:38.5501737Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5501826Z               "line": 361
2026-06-09T03:00:38.5501907Z             },
2026-06-09T03:00:38.5501985Z             {
2026-06-09T03:00:38.5502098Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T03:00:38.5502184Z               "line": 391
2026-06-09T03:00:38.5502266Z             },
2026-06-09T03:00:38.5502346Z             {
2026-06-09T03:00:38.5502460Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T03:00:38.5502547Z               "line": 365
2026-06-09T03:00:38.5502629Z             },
2026-06-09T03:00:38.5502709Z             {
2026-06-09T03:00:38.5502823Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T03:00:38.5502910Z               "line": 382
2026-06-09T03:00:38.5502995Z             },
2026-06-09T03:00:38.5503076Z             {
2026-06-09T03:00:38.5503186Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T03:00:38.5503272Z               "line": 411
2026-06-09T03:00:38.5503352Z             },
2026-06-09T03:00:38.5503428Z             {
2026-06-09T03:00:38.5503544Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T03:00:38.5503625Z               "line": 428
2026-06-09T03:00:38.5503709Z             },
2026-06-09T03:00:38.5503789Z             {
2026-06-09T03:00:38.5503895Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.5503989Z               "line": 828
2026-06-09T03:00:38.5504069Z             },
2026-06-09T03:00:38.5504150Z             {
2026-06-09T03:00:38.5504265Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.5504346Z               "line": 835
2026-06-09T03:00:38.5504426Z             },
2026-06-09T03:00:38.5504513Z             {
2026-06-09T03:00:38.5504647Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.5504731Z               "line": 850
2026-06-09T03:00:38.5504813Z             },
2026-06-09T03:00:38.5504894Z             {
2026-06-09T03:00:38.5504999Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5505089Z               "line": 420
2026-06-09T03:00:38.5505167Z             },
2026-06-09T03:00:38.5505247Z             {
2026-06-09T03:00:38.5505356Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5505442Z               "line": 458
2026-06-09T03:00:38.5505524Z             },
2026-06-09T03:00:38.5505604Z             {
2026-06-09T03:00:38.5505704Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5505787Z               "line": 471
2026-06-09T03:00:38.5505867Z             },
2026-06-09T03:00:38.5505943Z             {
2026-06-09T03:00:38.5506048Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5506271Z               "line": 497
2026-06-09T03:00:38.5506352Z             },
2026-06-09T03:00:38.5506433Z             {
2026-06-09T03:00:38.5506528Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T03:00:38.5506612Z               "line": 524
2026-06-09T03:00:38.5506711Z             },
2026-06-09T03:00:38.5506804Z             {
2026-06-09T03:00:38.5506907Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-09T03:00:38.5507070Z               "line": 32
2026-06-09T03:00:38.5507156Z             },
2026-06-09T03:00:38.5507236Z             {
2026-06-09T03:00:38.5507360Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5507447Z               "line": 6409
2026-06-09T03:00:38.5507523Z             }
2026-06-09T03:00:38.5507603Z           ]
2026-06-09T03:00:38.5507685Z         }
2026-06-09T03:00:38.5507771Z       }
2026-06-09T03:00:38.5507847Z     },
2026-06-09T03:00:38.5507927Z     {
2026-06-09T03:00:38.5508020Z       "id": "REQ-UPD-1",
2026-06-09T03:00:38.5508143Z       "title": "Peer-propagated update over P2P",
2026-06-09T03:00:38.5508242Z       "requiredStages": [
2026-06-09T03:00:38.5508324Z         "impl",
2026-06-09T03:00:38.5508406Z         "unit",
2026-06-09T03:00:38.5508485Z         "int"
2026-06-09T03:00:38.5508566Z       ],
2026-06-09T03:00:38.5508649Z       "stages": {
2026-06-09T03:00:38.5508744Z         "doc": {
2026-06-09T03:00:38.5508837Z           "complete": false,
2026-06-09T03:00:38.5508923Z           "evidence": []
2026-06-09T03:00:38.5509009Z         },
2026-06-09T03:00:38.5509089Z         "impl": {
2026-06-09T03:00:38.5509197Z           "complete": true,
2026-06-09T03:00:38.5509293Z           "evidence": [
2026-06-09T03:00:38.5509375Z             {
2026-06-09T03:00:38.5509497Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5509583Z               "line": 28
2026-06-09T03:00:38.5509666Z             },
2026-06-09T03:00:38.5509747Z             {
2026-06-09T03:00:38.5509874Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5510155Z               "line": 103
2026-06-09T03:00:38.5510361Z             },
2026-06-09T03:00:38.5510542Z             {
2026-06-09T03:00:38.5510742Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5511000Z               "line": 342
2026-06-09T03:00:38.5511181Z             },
2026-06-09T03:00:38.5511352Z             {
2026-06-09T03:00:38.5511549Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5511786Z               "line": 22
2026-06-09T03:00:38.5511963Z             },
2026-06-09T03:00:38.5512119Z             {
2026-06-09T03:00:38.5512311Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5512554Z               "line": 117
2026-06-09T03:00:38.5512730Z             },
2026-06-09T03:00:38.5512888Z             {
2026-06-09T03:00:38.5513087Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5513321Z               "line": 150
2026-06-09T03:00:38.5513504Z             },
2026-06-09T03:00:38.5513669Z             {
2026-06-09T03:00:38.5513861Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5514095Z               "line": 207
2026-06-09T03:00:38.5514269Z             },
2026-06-09T03:00:38.5514431Z             {
2026-06-09T03:00:38.5514610Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.5514849Z               "line": 37
2026-06-09T03:00:38.5515035Z             }
2026-06-09T03:00:38.5515207Z           ]
2026-06-09T03:00:38.5515383Z         },
2026-06-09T03:00:38.5515544Z         "int": {
2026-06-09T03:00:38.5515722Z           "complete": true,
2026-06-09T03:00:38.5515916Z           "evidence": [
2026-06-09T03:00:38.5516098Z             {
2026-06-09T03:00:38.5516308Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T03:00:38.5516555Z               "line": 207
2026-06-09T03:00:38.5516733Z             },
2026-06-09T03:00:38.5516892Z             {
2026-06-09T03:00:38.5521561Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T03:00:38.5522167Z               "line": 986
2026-06-09T03:00:38.5522542Z             }
2026-06-09T03:00:38.5522832Z           ]
2026-06-09T03:00:38.5523105Z         },
2026-06-09T03:00:38.5523362Z         "unit": {
2026-06-09T03:00:38.5523647Z           "complete": true,
2026-06-09T03:00:38.5523972Z           "evidence": [
2026-06-09T03:00:38.5524282Z             {
2026-06-09T03:00:38.5524631Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5525086Z               "line": 310
2026-06-09T03:00:38.5525395Z             },
2026-06-09T03:00:38.5525658Z             {
2026-06-09T03:00:38.5526024Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5526510Z               "line": 333
2026-06-09T03:00:38.5526825Z             },
2026-06-09T03:00:38.5527207Z             {
2026-06-09T03:00:38.5527558Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T03:00:38.5527999Z               "line": 275
2026-06-09T03:00:38.5528352Z             },
2026-06-09T03:00:38.5528657Z             {
2026-06-09T03:00:38.5528972Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.5529391Z               "line": 124
2026-06-09T03:00:38.5529706Z             },
2026-06-09T03:00:38.5529991Z             {
2026-06-09T03:00:38.5530327Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.5530733Z               "line": 200
2026-06-09T03:00:38.5531028Z             }
2026-06-09T03:00:38.5531257Z           ]
2026-06-09T03:00:38.5531415Z         }
2026-06-09T03:00:38.5531567Z       }
2026-06-09T03:00:38.5531725Z     },
2026-06-09T03:00:38.5531877Z     {
2026-06-09T03:00:38.5532036Z       "id": "REQ-UPD-2",
2026-06-09T03:00:38.5532292Z       "title": "All binaries signature-verified before handoff",
2026-06-09T03:00:38.5532568Z       "requiredStages": [
2026-06-09T03:00:38.5532760Z         "impl",
2026-06-09T03:00:38.5532930Z         "unit"
2026-06-09T03:00:38.5533092Z       ],
2026-06-09T03:00:38.5533268Z       "stages": {
2026-06-09T03:00:38.5533441Z         "doc": {
2026-06-09T03:00:38.5533612Z           "complete": false,
2026-06-09T03:00:38.5533807Z           "evidence": []
2026-06-09T03:00:38.5533989Z         },
2026-06-09T03:00:38.5534145Z         "impl": {
2026-06-09T03:00:38.5534318Z           "complete": true,
2026-06-09T03:00:38.5534508Z           "evidence": [
2026-06-09T03:00:38.5534680Z             {
2026-06-09T03:00:38.5534886Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5535133Z               "line": 343
2026-06-09T03:00:38.5535310Z             },
2026-06-09T03:00:38.5535484Z             {
2026-06-09T03:00:38.5535754Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5535998Z               "line": 469
2026-06-09T03:00:38.5536174Z             },
2026-06-09T03:00:38.5536336Z             {
2026-06-09T03:00:38.5536528Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5536769Z               "line": 29
2026-06-09T03:00:38.5537051Z             },
2026-06-09T03:00:38.5537242Z             {
2026-06-09T03:00:38.5537428Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5537671Z               "line": 258
2026-06-09T03:00:38.5537839Z             },
2026-06-09T03:00:38.5538004Z             {
2026-06-09T03:00:38.5538189Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5538421Z               "line": 275
2026-06-09T03:00:38.5538592Z             },
2026-06-09T03:00:38.5538745Z             {
2026-06-09T03:00:38.5538936Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5539165Z               "line": 395
2026-06-09T03:00:38.5539346Z             },
2026-06-09T03:00:38.5539503Z             {
2026-06-09T03:00:38.5539695Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5539933Z               "line": 527
2026-06-09T03:00:38.5540109Z             },
2026-06-09T03:00:38.5540275Z             {
2026-06-09T03:00:38.5540704Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5540963Z               "line": 155
2026-06-09T03:00:38.5541154Z             }
2026-06-09T03:00:38.5541356Z           ]
2026-06-09T03:00:38.5541521Z         },
2026-06-09T03:00:38.5541675Z         "int": {
2026-06-09T03:00:38.5541850Z           "complete": false,
2026-06-09T03:00:38.5542046Z           "evidence": []
2026-06-09T03:00:38.5542223Z         },
2026-06-09T03:00:38.5542385Z         "unit": {
2026-06-09T03:00:38.5542562Z           "complete": true,
2026-06-09T03:00:38.5542751Z           "evidence": [
2026-06-09T03:00:38.5542925Z             {
2026-06-09T03:00:38.5543119Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5543362Z               "line": 682
2026-06-09T03:00:38.5543538Z             },
2026-06-09T03:00:38.5543700Z             {
2026-06-09T03:00:38.5543896Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5544143Z               "line": 743
2026-06-09T03:00:38.5544330Z             },
2026-06-09T03:00:38.5544492Z             {
2026-06-09T03:00:38.5544682Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5544916Z               "line": 757
2026-06-09T03:00:38.5545092Z             },
2026-06-09T03:00:38.5545259Z             {
2026-06-09T03:00:38.5545451Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5545693Z               "line": 773
2026-06-09T03:00:38.5545866Z             },
2026-06-09T03:00:38.5546021Z             {
2026-06-09T03:00:38.5546216Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5546453Z               "line": 864
2026-06-09T03:00:38.5546624Z             },
2026-06-09T03:00:38.5546787Z             {
2026-06-09T03:00:38.5547068Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5547301Z               "line": 412
2026-06-09T03:00:38.5547478Z             },
2026-06-09T03:00:38.5547635Z             {
2026-06-09T03:00:38.5547839Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5548103Z               "line": 425
2026-06-09T03:00:38.5548288Z             },
2026-06-09T03:00:38.5548455Z             {
2026-06-09T03:00:38.5548650Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T03:00:38.5548900Z               "line": 408
2026-06-09T03:00:38.5549072Z             }
2026-06-09T03:00:38.5549229Z           ]
2026-06-09T03:00:38.5549382Z         }
2026-06-09T03:00:38.5549534Z       }
2026-06-09T03:00:38.5549692Z     },
2026-06-09T03:00:38.5549839Z     {
2026-06-09T03:00:38.5549998Z       "id": "REQ-UPD-3",
2026-06-09T03:00:38.5550265Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-09T03:00:38.5550570Z       "requiredStages": [
2026-06-09T03:00:38.5550759Z         "impl",
2026-06-09T03:00:38.5550923Z         "unit",
2026-06-09T03:00:38.5551083Z         "int"
2026-06-09T03:00:38.5551240Z       ],
2026-06-09T03:00:38.5551395Z       "stages": {
2026-06-09T03:00:38.5551591Z         "doc": {
2026-06-09T03:00:38.5551762Z           "complete": false,
2026-06-09T03:00:38.5551958Z           "evidence": []
2026-06-09T03:00:38.5552139Z         },
2026-06-09T03:00:38.5552297Z         "impl": {
2026-06-09T03:00:38.5552468Z           "complete": true,
2026-06-09T03:00:38.5552654Z           "evidence": [
2026-06-09T03:00:38.5552827Z             {
2026-06-09T03:00:38.5553026Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5553274Z               "line": 39
2026-06-09T03:00:38.5553451Z             },
2026-06-09T03:00:38.5553617Z             {
2026-06-09T03:00:38.5553819Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5554059Z               "line": 71
2026-06-09T03:00:38.5554241Z             },
2026-06-09T03:00:38.5554403Z             {
2026-06-09T03:00:38.5554589Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5554828Z               "line": 26
2026-06-09T03:00:38.5555194Z             },
2026-06-09T03:00:38.5555356Z             {
2026-06-09T03:00:38.5555537Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5555777Z               "line": 114
2026-06-09T03:00:38.5555953Z             },
2026-06-09T03:00:38.5556111Z             {
2026-06-09T03:00:38.5556292Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5556548Z               "line": 246
2026-06-09T03:00:38.5556729Z             },
2026-06-09T03:00:38.5556903Z             {
2026-06-09T03:00:38.5557174Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5557413Z               "line": 1643
2026-06-09T03:00:38.5557599Z             }
2026-06-09T03:00:38.5557756Z           ]
2026-06-09T03:00:38.5557909Z         },
2026-06-09T03:00:38.5558066Z         "int": {
2026-06-09T03:00:38.5558243Z           "complete": true,
2026-06-09T03:00:38.5558434Z           "evidence": [
2026-06-09T03:00:38.5558606Z             {
2026-06-09T03:00:38.5558820Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-09T03:00:38.5559081Z               "line": 23
2026-06-09T03:00:38.5559267Z             }
2026-06-09T03:00:38.5559431Z           ]
2026-06-09T03:00:38.5559595Z         },
2026-06-09T03:00:38.5559755Z         "unit": {
2026-06-09T03:00:38.5559928Z           "complete": true,
2026-06-09T03:00:38.5560118Z           "evidence": [
2026-06-09T03:00:38.5560290Z             {
2026-06-09T03:00:38.5560486Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5560728Z               "line": 393
2026-06-09T03:00:38.5560901Z             },
2026-06-09T03:00:38.5561057Z             {
2026-06-09T03:00:38.5561248Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5561478Z               "line": 461
2026-06-09T03:00:38.5561653Z             },
2026-06-09T03:00:38.5561805Z             {
2026-06-09T03:00:38.5561989Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5562223Z               "line": 271
2026-06-09T03:00:38.5562408Z             },
2026-06-09T03:00:38.5562566Z             {
2026-06-09T03:00:38.5562747Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5562971Z               "line": 295
2026-06-09T03:00:38.5563148Z             },
2026-06-09T03:00:38.5563300Z             {
2026-06-09T03:00:38.5563486Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5563716Z               "line": 316
2026-06-09T03:00:38.5563896Z             },
2026-06-09T03:00:38.5564050Z             {
2026-06-09T03:00:38.5564239Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5564463Z               "line": 332
2026-06-09T03:00:38.5564638Z             }
2026-06-09T03:00:38.5564801Z           ]
2026-06-09T03:00:38.5564953Z         }
2026-06-09T03:00:38.5565107Z       }
2026-06-09T03:00:38.5565263Z     },
2026-06-09T03:00:38.5565412Z     {
2026-06-09T03:00:38.5565568Z       "id": "REQ-UPD-4",
2026-06-09T03:00:38.5565840Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-09T03:00:38.5566141Z       "requiredStages": [
2026-06-09T03:00:38.5566323Z         "impl",
2026-06-09T03:00:38.5566484Z         "unit"
2026-06-09T03:00:38.5566647Z       ],
2026-06-09T03:00:38.5566808Z       "stages": {
2026-06-09T03:00:38.5567056Z         "doc": {
2026-06-09T03:00:38.5567227Z           "complete": false,
2026-06-09T03:00:38.5567420Z           "evidence": []
2026-06-09T03:00:38.5567598Z         },
2026-06-09T03:00:38.5567758Z         "impl": {
2026-06-09T03:00:38.5567926Z           "complete": true,
2026-06-09T03:00:38.5568111Z           "evidence": [
2026-06-09T03:00:38.5568284Z             {
2026-06-09T03:00:38.5568474Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5568712Z               "line": 40
2026-06-09T03:00:38.5568880Z             },
2026-06-09T03:00:38.5569036Z             {
2026-06-09T03:00:38.5569247Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5569670Z               "line": 72
2026-06-09T03:00:38.5569889Z             },
2026-06-09T03:00:38.5570044Z             {
2026-06-09T03:00:38.5570231Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T03:00:38.5570465Z               "line": 23
2026-06-09T03:00:38.5570634Z             },
2026-06-09T03:00:38.5570794Z             {
2026-06-09T03:00:38.5570978Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T03:00:38.5571203Z               "line": 56
2026-06-09T03:00:38.5571371Z             },
2026-06-09T03:00:38.5571526Z             {
2026-06-09T03:00:38.5571709Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T03:00:38.5571947Z               "line": 77
2026-06-09T03:00:38.5572119Z             },
2026-06-09T03:00:38.5572274Z             {
2026-06-09T03:00:38.5572468Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T03:00:38.5572702Z               "line": 184
2026-06-09T03:00:38.5572878Z             },
2026-06-09T03:00:38.5573045Z             {
2026-06-09T03:00:38.5573240Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T03:00:38.5573474Z               "line": 101
2026-06-09T03:00:38.5573661Z             },
2026-06-09T03:00:38.5573817Z             {
2026-06-09T03:00:38.5574004Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.5574238Z               "line": 170
2026-06-09T03:00:38.5574418Z             },
2026-06-09T03:00:38.5574576Z             {
2026-06-09T03:00:38.5574761Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5575005Z               "line": 1642
2026-06-09T03:00:38.5575199Z             }
2026-06-09T03:00:38.5575352Z           ]
2026-06-09T03:00:38.5575514Z         },
2026-06-09T03:00:38.5575676Z         "int": {
2026-06-09T03:00:38.5575857Z           "complete": false,
2026-06-09T03:00:38.5576052Z           "evidence": []
2026-06-09T03:00:38.5576229Z         },
2026-06-09T03:00:38.5576396Z         "unit": {
2026-06-09T03:00:38.5576573Z           "complete": true,
2026-06-09T03:00:38.5576782Z           "evidence": [
2026-06-09T03:00:38.5577054Z             {
2026-06-09T03:00:38.5577254Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5577503Z               "line": 389
2026-06-09T03:00:38.5577682Z             },
2026-06-09T03:00:38.5577839Z             {
2026-06-09T03:00:38.5578032Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5578276Z               "line": 514
2026-06-09T03:00:38.5578453Z             },
2026-06-09T03:00:38.5578619Z             {
2026-06-09T03:00:38.5578810Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T03:00:38.5579049Z               "line": 384
2026-06-09T03:00:38.5579230Z             },
2026-06-09T03:00:38.5579388Z             {
2026-06-09T03:00:38.5579573Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T03:00:38.5579807Z               "line": 102
2026-06-09T03:00:38.5579993Z             },
2026-06-09T03:00:38.5580168Z             {
2026-06-09T03:00:38.5580425Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T03:00:38.5580662Z               "line": 123
2026-06-09T03:00:38.5580847Z             },
2026-06-09T03:00:38.5581010Z             {
2026-06-09T03:00:38.5581199Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T03:00:38.5581429Z               "line": 142
2026-06-09T03:00:38.5581616Z             },
2026-06-09T03:00:38.5581773Z             {
2026-06-09T03:00:38.5581964Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T03:00:38.5582192Z               "line": 386
2026-06-09T03:00:38.5582373Z             },
2026-06-09T03:00:38.5582531Z             {
2026-06-09T03:00:38.5582721Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T03:00:38.5582949Z               "line": 556
2026-06-09T03:00:38.5583133Z             },
2026-06-09T03:00:38.5583291Z             {
2026-06-09T03:00:38.5583471Z               "path": "crates/spt/src/cli.rs",
2026-06-09T03:00:38.5583700Z               "line": 5258
2026-06-09T03:00:38.5584086Z             }
2026-06-09T03:00:38.5584254Z           ]
2026-06-09T03:00:38.5584405Z         }
2026-06-09T03:00:38.5584564Z       }
2026-06-09T03:00:38.5584720Z     },
2026-06-09T03:00:38.5584884Z     {
2026-06-09T03:00:38.5585045Z       "id": "REQ-UPD-5",
2026-06-09T03:00:38.5585283Z       "title": "spt-core ripple-updates registered adapters",
2026-06-09T03:00:38.5585551Z       "requiredStages": [
2026-06-09T03:00:38.5585735Z         "impl",
2026-06-09T03:00:38.5585903Z         "unit"
2026-06-09T03:00:38.5586064Z       ],
2026-06-09T03:00:38.5586222Z       "stages": {
2026-06-09T03:00:38.5586388Z         "doc": {
2026-06-09T03:00:38.5586570Z           "complete": false,
2026-06-09T03:00:38.5586766Z           "evidence": []
2026-06-09T03:00:38.5587037Z         },
2026-06-09T03:00:38.5587199Z         "impl": {
2026-06-09T03:00:38.5587371Z           "complete": true,
2026-06-09T03:00:38.5587576Z           "evidence": [
2026-06-09T03:00:38.5587749Z             {
2026-06-09T03:00:38.5590682Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5590966Z               "line": 27
2026-06-09T03:00:38.5591159Z             },
2026-06-09T03:00:38.5591331Z             {
2026-06-09T03:00:38.5591541Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5591798Z               "line": 82
2026-06-09T03:00:38.5591980Z             },
2026-06-09T03:00:38.5592142Z             {
2026-06-09T03:00:38.5592347Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5592595Z               "line": 134
2026-06-09T03:00:38.5592776Z             },
2026-06-09T03:00:38.5592929Z             {
2026-06-09T03:00:38.5593135Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5593371Z               "line": 479
2026-06-09T03:00:38.5593547Z             },
2026-06-09T03:00:38.5593707Z             {
2026-06-09T03:00:38.5593899Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5594142Z               "line": 515
2026-06-09T03:00:38.5594317Z             }
2026-06-09T03:00:38.5594471Z           ]
2026-06-09T03:00:38.5594627Z         },
2026-06-09T03:00:38.5594781Z         "int": {
2026-06-09T03:00:38.5594951Z           "complete": false,
2026-06-09T03:00:38.5595148Z           "evidence": []
2026-06-09T03:00:38.5595324Z         },
2026-06-09T03:00:38.5595477Z         "unit": {
2026-06-09T03:00:38.5595648Z           "complete": true,
2026-06-09T03:00:38.5595843Z           "evidence": [
2026-06-09T03:00:38.5596012Z             {
2026-06-09T03:00:38.5596214Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5596468Z               "line": 231
2026-06-09T03:00:38.5596639Z             },
2026-06-09T03:00:38.5596811Z             {
2026-06-09T03:00:38.5597121Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5597360Z               "line": 245
2026-06-09T03:00:38.5597540Z             },
2026-06-09T03:00:38.5597693Z             {
2026-06-09T03:00:38.5597902Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5598145Z               "line": 259
2026-06-09T03:00:38.5598318Z             },
2026-06-09T03:00:38.5598474Z             {
2026-06-09T03:00:38.5598661Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5598907Z               "line": 273
2026-06-09T03:00:38.5599086Z             },
2026-06-09T03:00:38.5599239Z             {
2026-06-09T03:00:38.5599434Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T03:00:38.5599668Z               "line": 307
2026-06-09T03:00:38.5599844Z             },
2026-06-09T03:00:38.5600002Z             {
2026-06-09T03:00:38.5600189Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T03:00:38.5600430Z               "line": 792
2026-06-09T03:00:38.5600607Z             }
2026-06-09T03:00:38.5600755Z           ]
2026-06-09T03:00:38.5600908Z         }
2026-06-09T03:00:38.5601060Z       }
2026-06-09T03:00:38.5601426Z     },
2026-06-09T03:00:38.5601583Z     {
2026-06-09T03:00:38.5601738Z       "id": "REQ-UPD-6",
2026-06-09T03:00:38.5602602Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-09T03:00:38.5603508Z       "requiredStages": [
2026-06-09T03:00:38.5603690Z         "doc",
2026-06-09T03:00:38.5603846Z         "impl",
2026-06-09T03:00:38.5604007Z         "unit",
2026-06-09T03:00:38.5604163Z         "int"
2026-06-09T03:00:38.5604314Z       ],
2026-06-09T03:00:38.5604464Z       "stages": {
2026-06-09T03:00:38.5604624Z         "doc": {
2026-06-09T03:00:38.5604793Z           "complete": true,
2026-06-09T03:00:38.5604983Z           "evidence": [
2026-06-09T03:00:38.5605155Z             {
2026-06-09T03:00:38.5605355Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-09T03:00:38.5605588Z               "line": 3
2026-06-09T03:00:38.5605755Z             },
2026-06-09T03:00:38.5605908Z             {
2026-06-09T03:00:38.5606083Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-09T03:00:38.5606295Z               "line": 3
2026-06-09T03:00:38.5606465Z             },
2026-06-09T03:00:38.5606619Z             {
2026-06-09T03:00:38.5606841Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-09T03:00:38.5607204Z               "line": 3
2026-06-09T03:00:38.5607371Z             }
2026-06-09T03:00:38.5607523Z           ]
2026-06-09T03:00:38.5607672Z         },
2026-06-09T03:00:38.5607828Z         "impl": {
2026-06-09T03:00:38.5607995Z           "complete": true,
2026-06-09T03:00:38.5608182Z           "evidence": [
2026-06-09T03:00:38.5608348Z             {
2026-06-09T03:00:38.5608545Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5608782Z               "line": 143
2026-06-09T03:00:38.5608972Z             },
2026-06-09T03:00:38.5609131Z             {
2026-06-09T03:00:38.5609325Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5609553Z               "line": 511
2026-06-09T03:00:38.5609731Z             },
2026-06-09T03:00:38.5609885Z             {
2026-06-09T03:00:38.5610066Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T03:00:38.5610304Z               "line": 564
2026-06-09T03:00:38.5610472Z             },
2026-06-09T03:00:38.5610623Z             {
2026-06-09T03:00:38.5610810Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5611044Z               "line": 69
2026-06-09T03:00:38.5611215Z             },
2026-06-09T03:00:38.5611368Z             {
2026-06-09T03:00:38.5611549Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5611778Z               "line": 133
2026-06-09T03:00:38.5611943Z             },
2026-06-09T03:00:38.5612095Z             {
2026-06-09T03:00:38.5612289Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5612518Z               "line": 243
2026-06-09T03:00:38.5612686Z             },
2026-06-09T03:00:38.5612833Z             {
2026-06-09T03:00:38.5613015Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5613238Z               "line": 399
2026-06-09T03:00:38.5613405Z             },
2026-06-09T03:00:38.5613557Z             {
2026-06-09T03:00:38.5613744Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5613964Z               "line": 527
2026-06-09T03:00:38.5614135Z             },
2026-06-09T03:00:38.5614289Z             {
2026-06-09T03:00:38.5614472Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5614700Z               "line": 541
2026-06-09T03:00:38.5614865Z             },
2026-06-09T03:00:38.5615019Z             {
2026-06-09T03:00:38.5615199Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5615528Z               "line": 596
2026-06-09T03:00:38.5615780Z             },
2026-06-09T03:00:38.5615934Z             {
2026-06-09T03:00:38.5616119Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5616343Z               "line": 627
2026-06-09T03:00:38.5616512Z             },
2026-06-09T03:00:38.5616662Z             {
2026-06-09T03:00:38.5616845Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5617156Z               "line": 41
2026-06-09T03:00:38.5617325Z             },
2026-06-09T03:00:38.5617487Z             {
2026-06-09T03:00:38.5617673Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5617903Z               "line": 99
2026-06-09T03:00:38.5618068Z             },
2026-06-09T03:00:38.5618217Z             {
2026-06-09T03:00:38.5618398Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5618622Z               "line": 130
2026-06-09T03:00:38.5618790Z             },
2026-06-09T03:00:38.5618941Z             {
2026-06-09T03:00:38.5619071Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5619157Z               "line": 159
2026-06-09T03:00:38.5619232Z             },
2026-06-09T03:00:38.5619314Z             {
2026-06-09T03:00:38.5619419Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5619504Z               "line": 190
2026-06-09T03:00:38.5619585Z             },
2026-06-09T03:00:38.5619657Z             {
2026-06-09T03:00:38.5619768Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5619851Z               "line": 213
2026-06-09T03:00:38.5619932Z             },
2026-06-09T03:00:38.5620009Z             {
2026-06-09T03:00:38.5620118Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5620202Z               "line": 231
2026-06-09T03:00:38.5620282Z             },
2026-06-09T03:00:38.5620359Z             {
2026-06-09T03:00:38.5620470Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5620564Z               "line": 241
2026-06-09T03:00:38.5620646Z             },
2026-06-09T03:00:38.5620727Z             {
2026-06-09T03:00:38.5620836Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5620917Z               "line": 253
2026-06-09T03:00:38.5620989Z             },
2026-06-09T03:00:38.5621060Z             {
2026-06-09T03:00:38.5621169Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5621255Z               "line": 263
2026-06-09T03:00:38.5621333Z             },
2026-06-09T03:00:38.5621403Z             {
2026-06-09T03:00:38.5621512Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5621609Z               "line": 87
2026-06-09T03:00:38.5621690Z             },
2026-06-09T03:00:38.5621775Z             {
2026-06-09T03:00:38.5621871Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5621953Z               "line": 113
2026-06-09T03:00:38.5622024Z             },
2026-06-09T03:00:38.5622114Z             {
2026-06-09T03:00:38.5622229Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5622325Z               "line": 128
2026-06-09T03:00:38.5622413Z             },
2026-06-09T03:00:38.5622489Z             {
2026-06-09T03:00:38.5622604Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5622689Z               "line": 149
2026-06-09T03:00:38.5622769Z             },
2026-06-09T03:00:38.5622854Z             {
2026-06-09T03:00:38.5622960Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5623045Z               "line": 161
2026-06-09T03:00:38.5623131Z             },
2026-06-09T03:00:38.5623207Z             {
2026-06-09T03:00:38.5623317Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5623397Z               "line": 172
2026-06-09T03:00:38.5623478Z             },
2026-06-09T03:00:38.5623556Z             {
2026-06-09T03:00:38.5623665Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5623932Z               "line": 438
2026-06-09T03:00:38.5624018Z             },
2026-06-09T03:00:38.5624099Z             {
2026-06-09T03:00:38.5624214Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5624304Z               "line": 542
2026-06-09T03:00:38.5624390Z             },
2026-06-09T03:00:38.5624481Z             {
2026-06-09T03:00:38.5624595Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5624680Z               "line": 171
2026-06-09T03:00:38.5624766Z             },
2026-06-09T03:00:38.5624844Z             {
2026-06-09T03:00:38.5624957Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.5625042Z               "line": 65
2026-06-09T03:00:38.5625127Z             },
2026-06-09T03:00:38.5625213Z             {
2026-06-09T03:00:38.5625321Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.5625411Z               "line": 71
2026-06-09T03:00:38.5625488Z             },
2026-06-09T03:00:38.5625589Z             {
2026-06-09T03:00:38.5625697Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T03:00:38.5625783Z               "line": 77
2026-06-09T03:00:38.5625865Z             },
2026-06-09T03:00:38.5625941Z             {
2026-06-09T03:00:38.5626050Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5626137Z               "line": 649
2026-06-09T03:00:38.5626218Z             },
2026-06-09T03:00:38.5626298Z             {
2026-06-09T03:00:38.5626403Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5626489Z               "line": 666
2026-06-09T03:00:38.5626570Z             },
2026-06-09T03:00:38.5626651Z             {
2026-06-09T03:00:38.5626748Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5626833Z               "line": 709
2026-06-09T03:00:38.5626913Z             },
2026-06-09T03:00:38.5627081Z             {
2026-06-09T03:00:38.5627185Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5627276Z               "line": 849
2026-06-09T03:00:38.5627362Z             },
2026-06-09T03:00:38.5627453Z             {
2026-06-09T03:00:38.5627556Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5627643Z               "line": 999
2026-06-09T03:00:38.5627725Z             }
2026-06-09T03:00:38.5627815Z           ]
2026-06-09T03:00:38.5627894Z         },
2026-06-09T03:00:38.5627980Z         "int": {
2026-06-09T03:00:38.5628072Z           "complete": true,
2026-06-09T03:00:38.5628162Z           "evidence": [
2026-06-09T03:00:38.5628237Z             {
2026-06-09T03:00:38.5628377Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T03:00:38.5628458Z               "line": 567
2026-06-09T03:00:38.5628538Z             },
2026-06-09T03:00:38.5628628Z             {
2026-06-09T03:00:38.5628739Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-09T03:00:38.5628825Z               "line": 135
2026-06-09T03:00:38.5628905Z             }
2026-06-09T03:00:38.5628983Z           ]
2026-06-09T03:00:38.5629078Z         },
2026-06-09T03:00:38.5629163Z         "unit": {
2026-06-09T03:00:38.5629254Z           "complete": true,
2026-06-09T03:00:38.5629340Z           "evidence": [
2026-06-09T03:00:38.5629425Z             {
2026-06-09T03:00:38.5629544Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5629627Z               "line": 434
2026-06-09T03:00:38.5629717Z             },
2026-06-09T03:00:38.5629797Z             {
2026-06-09T03:00:38.5629912Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T03:00:38.5629994Z               "line": 483
2026-06-09T03:00:38.5630078Z             },
2026-06-09T03:00:38.5630164Z             {
2026-06-09T03:00:38.5630280Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T03:00:38.5630365Z               "line": 689
2026-06-09T03:00:38.5630445Z             },
2026-06-09T03:00:38.5630525Z             {
2026-06-09T03:00:38.5630640Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5630929Z               "line": 355
2026-06-09T03:00:38.5631015Z             },
2026-06-09T03:00:38.5631095Z             {
2026-06-09T03:00:38.5631210Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T03:00:38.5631292Z               "line": 392
2026-06-09T03:00:38.5631377Z             },
2026-06-09T03:00:38.5631458Z             {
2026-06-09T03:00:38.5631569Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5631658Z               "line": 879
2026-06-09T03:00:38.5631739Z             },
2026-06-09T03:00:38.5631820Z             {
2026-06-09T03:00:38.5631936Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5632021Z               "line": 901
2026-06-09T03:00:38.5632106Z             },
2026-06-09T03:00:38.5632183Z             {
2026-06-09T03:00:38.5632297Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5632378Z               "line": 918
2026-06-09T03:00:38.5632464Z             },
2026-06-09T03:00:38.5632565Z             {
2026-06-09T03:00:38.5632679Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5632765Z               "line": 933
2026-06-09T03:00:38.5632847Z             },
2026-06-09T03:00:38.5632931Z             {
2026-06-09T03:00:38.5633036Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T03:00:38.5633126Z               "line": 959
2026-06-09T03:00:38.5633212Z             },
2026-06-09T03:00:38.5633295Z             {
2026-06-09T03:00:38.5633409Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T03:00:38.5633496Z               "line": 455
2026-06-09T03:00:38.5633577Z             },
2026-06-09T03:00:38.5633657Z             {
2026-06-09T03:00:38.5633781Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T03:00:38.5633863Z               "line": 336
2026-06-09T03:00:38.5633948Z             },
2026-06-09T03:00:38.5634029Z             {
2026-06-09T03:00:38.5634145Z               "path": "crates/xtask/src/main.rs",
2026-06-09T03:00:38.5634235Z               "line": 1128
2026-06-09T03:00:38.5634315Z             },
2026-06-09T03:00:38.5634397Z             {
2026-06-09T03:00:38.5634506Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-09T03:00:38.5634597Z               "line": 130
2026-06-09T03:00:38.5634678Z             }
2026-06-09T03:00:38.5634760Z           ]
2026-06-09T03:00:38.5634845Z         }
2026-06-09T03:00:38.5634926Z       }
2026-06-09T03:00:38.5635011Z     }
2026-06-09T03:00:38.5635094Z   ],
2026-06-09T03:00:38.5635183Z   "findings": []
2026-06-09T03:00:38.5635264Z }
2026-06-09T03:00:38.5662499Z ##[group]Run ./traceable-reqs lint || true
2026-06-09T03:00:38.5662639Z [36;1m./traceable-reqs lint || true[0m
2026-06-09T03:00:38.5675414Z shell: /usr/bin/bash -e {0}
2026-06-09T03:00:38.5675512Z ##[endgroup]
2026-06-09T03:00:38.5838279Z Requirement quality findings (71); 175 requirements queued for agent review:
2026-06-09T03:00:38.5839298Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5839865Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-09T03:00:38.5840403Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-09T03:00:38.5840942Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-09T03:00:38.5841267Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-09T03:00:38.5841742Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-09T03:00:38.5842284Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5842818Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-09T03:00:38.5843313Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-09T03:00:38.5844352Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5844779Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-09T03:00:38.5845222Z   [must] requirement_quality REQ-DAEMON-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5845551Z   [must] requirement_quality REQ-DAEMON-6 criterion=length — title is 84 words; want 3..=25
2026-06-09T03:00:38.5846010Z   [must] requirement_quality REQ-DAEMON-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5846320Z   [must] requirement_quality REQ-DAEMON-7 criterion=length — title is 62 words; want 3..=25
2026-06-09T03:00:38.5846630Z   [must] requirement_quality REQ-DAEMON-8 criterion=length — title is 44 words; want 3..=25
2026-06-09T03:00:38.5847136Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-09T03:00:38.5847575Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-09T03:00:38.5847984Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-09T03:00:38.5848519Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5848938Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-09T03:00:38.5849459Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5849820Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-09T03:00:38.5850320Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5850706Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-09T03:00:38.5851089Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-09T03:00:38.5851484Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-09T03:00:38.5852137Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5852581Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5852919Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-09T03:00:38.5853345Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5853665Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-09T03:00:38.5853970Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-09T03:00:38.5854290Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-09T03:00:38.5854552Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-09T03:00:38.5854816Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-09T03:00:38.5855181Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5855549Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-09T03:00:38.5861228Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5861557Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-09T03:00:38.5861829Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-09T03:00:38.5862225Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5862472Z   [must] requirement_quality REQ-MESH-1 criterion=length — title is 86 words; want 3..=25
2026-06-09T03:00:38.5862829Z   [must] requirement_quality REQ-MESH-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5863080Z   [must] requirement_quality REQ-MESH-2 criterion=length — title is 120 words; want 3..=25
2026-06-09T03:00:38.5863432Z   [must] requirement_quality REQ-MESH-3 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5863686Z   [must] requirement_quality REQ-MESH-3 criterion=length — title is 86 words; want 3..=25
2026-06-09T03:00:38.5864014Z   [must] requirement_quality REQ-MESH-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5864258Z   [must] requirement_quality REQ-MESH-4 criterion=length — title is 99 words; want 3..=25
2026-06-09T03:00:38.5864601Z   [must] requirement_quality REQ-MESH-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5864836Z   [must] requirement_quality REQ-MESH-5 criterion=length — title is 72 words; want 3..=25
2026-06-09T03:00:38.5865165Z   [must] requirement_quality REQ-MESH-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5865415Z   [must] requirement_quality REQ-MESH-6 criterion=length — title is 56 words; want 3..=25
2026-06-09T03:00:38.5865760Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5866008Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-09T03:00:38.5866347Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5866739Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-09T03:00:38.5867168Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5867421Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-09T03:00:38.5867688Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-09T03:00:38.5867943Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-09T03:00:38.5868190Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-09T03:00:38.5868433Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-09T03:00:38.5868676Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-09T03:00:38.5869043Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5869286Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-09T03:00:38.5869630Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5869877Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-09T03:00:38.5870230Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-09T03:00:38.5870570Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-09T03:00:38.5870815Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-09T03:00:38.5870844Z 
2026-06-09T03:00:38.5870945Z # Requirement quality review
2026-06-09T03:00:38.5870973Z 
2026-06-09T03:00:38.5871182Z You are reviewing 175 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-09T03:00:38.5871374Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-09T03:00:38.5871726Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-09T03:00:38.5871875Z this command's output. Your task is the rubric items below.
2026-06-09T03:00:38.5871904Z 
2026-06-09T03:00:38.5871988Z ## Rubric
2026-06-09T03:00:38.5872027Z 
2026-06-09T03:00:38.5872308Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-09T03:00:38.5872538Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-09T03:00:38.5872752Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-09T03:00:38.5872905Z - **active-voice** — clear subject and active verb.
2026-06-09T03:00:38.5872937Z 
2026-06-09T03:00:38.5873158Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-09T03:00:38.5873262Z clear concerns.
2026-06-09T03:00:38.5873294Z 
2026-06-09T03:00:38.5873380Z ## Requirements
2026-06-09T03:00:38.5873413Z 
2026-06-09T03:00:38.5873499Z ### REQ-ARCH-1
2026-06-09T03:00:38.5873621Z - Title: Many small acyclically-layered crates
2026-06-09T03:00:38.5873711Z - Required stages: impl
2026-06-09T03:00:38.5873739Z 
2026-06-09T03:00:38.5873831Z ### REQ-ARCH-2
2026-06-09T03:00:38.5873983Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-09T03:00:38.5874088Z - Required stages: impl
2026-06-09T03:00:38.5874117Z 
2026-06-09T03:00:38.5874208Z ### REQ-ARCH-3
2026-06-09T03:00:38.5874388Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-09T03:00:38.5874489Z - Required stages: impl, unit
2026-06-09T03:00:38.5874517Z 
2026-06-09T03:00:38.5874603Z ### REQ-ARCH-4
2026-06-09T03:00:38.5874761Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-09T03:00:38.5874860Z - Required stages: impl, unit
2026-06-09T03:00:38.5874989Z 
2026-06-09T03:00:38.5875081Z ### REQ-DAEMON-1
2026-06-09T03:00:38.5875237Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-09T03:00:38.5875337Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5875367Z 
2026-06-09T03:00:38.5875457Z ### REQ-DAEMON-2
2026-06-09T03:00:38.5875585Z - Title: Broker/brain split for seamless self-update
2026-06-09T03:00:38.5875682Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5875725Z 
2026-06-09T03:00:38.5875819Z ### REQ-DAEMON-3
2026-06-09T03:00:38.5875960Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-09T03:00:38.5876061Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5876089Z 
2026-06-09T03:00:38.5876183Z ### REQ-DAEMON-4
2026-06-09T03:00:38.5876297Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-09T03:00:38.5876398Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5876427Z 
2026-06-09T03:00:38.5876516Z ### REQ-STORE-1
2026-06-09T03:00:38.5877403Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-09T03:00:38.5877508Z - Required stages: impl, unit
2026-06-09T03:00:38.5877537Z 
2026-06-09T03:00:38.5877629Z ### REQ-MANIFEST-1
2026-06-09T03:00:38.5877894Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-09T03:00:38.5877995Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5878019Z 
2026-06-09T03:00:38.5878113Z ### REQ-SEAM-SPAWN
2026-06-09T03:00:38.5878219Z - Title: spawn-session seam
2026-06-09T03:00:38.5878315Z - Required stages: impl, unit
2026-06-09T03:00:38.5878339Z 
2026-06-09T03:00:38.5878442Z ### REQ-SEAM-POSTSPAWN
2026-06-09T03:00:38.5878560Z - Title: post-spawn / api bind seam with boot nonce
2026-06-09T03:00:38.5878670Z - Required stages: impl, unit
2026-06-09T03:00:38.5878703Z 
2026-06-09T03:00:38.5878806Z ### REQ-SEAM-PSYCHE
2026-06-09T03:00:38.5878935Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-09T03:00:38.5879041Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5879069Z 
2026-06-09T03:00:38.5879159Z ### REQ-SEAM-HISTORY
2026-06-09T03:00:38.5879322Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-09T03:00:38.5879422Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5879464Z 
2026-06-09T03:00:38.5879556Z ### REQ-SEAM-ACTIVITY
2026-06-09T03:00:38.5879722Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-09T03:00:38.5879817Z - Required stages: impl, unit
2026-06-09T03:00:38.5879841Z 
2026-06-09T03:00:38.5879942Z ### REQ-SEAM-INJECT
2026-06-09T03:00:38.5880089Z - Title: inject-input methods configurable per activity-state
2026-06-09T03:00:38.5880191Z - Required stages: impl, unit
2026-06-09T03:00:38.5880214Z 
2026-06-09T03:00:38.5880309Z ### REQ-SEAM-RESUME
2026-06-09T03:00:38.5880471Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-09T03:00:38.5880576Z - Required stages: impl, unit
2026-06-09T03:00:38.5880605Z 
2026-06-09T03:00:38.5880700Z ### REQ-SEAM-CAPABILITY
2026-06-09T03:00:38.5880839Z - Title: Hostable endpoint-types capability declaration
2026-06-09T03:00:38.5880939Z - Required stages: impl, unit
2026-06-09T03:00:38.5880966Z 
2026-06-09T03:00:38.5881057Z ### REQ-SEAM-UPDATE
2026-06-09T03:00:38.5881211Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-09T03:00:38.5881309Z - Required stages: impl, unit
2026-06-09T03:00:38.5881337Z 
2026-06-09T03:00:38.5881427Z ### REQ-API-1
2026-06-09T03:00:38.5881581Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-09T03:00:38.5881680Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5881709Z 
2026-06-09T03:00:38.5881796Z ### REQ-API-2
2026-06-09T03:00:38.5881981Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-09T03:00:38.5882182Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5882205Z 
2026-06-09T03:00:38.5882287Z ### REQ-API-3
2026-06-09T03:00:38.5882406Z - Title: commune/signoff are file-drops, not commands
2026-06-09T03:00:38.5882507Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5882530Z 
2026-06-09T03:00:38.5882620Z ### REQ-START-1
2026-06-09T03:00:38.5882802Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-09T03:00:38.5882930Z - Required stages: impl, unit
2026-06-09T03:00:38.5882968Z 
2026-06-09T03:00:38.5883055Z ### REQ-START-2
2026-06-09T03:00:38.5883183Z - Title: Harness-hosted startup: api seed then listen
2026-06-09T03:00:38.5883278Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5883302Z 
2026-06-09T03:00:38.5883394Z ### REQ-START-3
2026-06-09T03:00:38.5883545Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-09T03:00:38.5883646Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5883675Z 
2026-06-09T03:00:38.5883771Z ### REQ-START-4
2026-06-09T03:00:38.5883892Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-09T03:00:38.5883992Z - Required stages: impl, unit
2026-06-09T03:00:38.5884016Z 
2026-06-09T03:00:38.5884102Z ### REQ-EP-1
2026-06-09T03:00:38.5884223Z - Title: Day-one endpoint types; open type system
2026-06-09T03:00:38.5884324Z - Required stages: impl, unit
2026-06-09T03:00:38.5884352Z 
2026-06-09T03:00:38.5884439Z ### REQ-EP-2
2026-06-09T03:00:38.5884663Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-09T03:00:38.5884758Z - Required stages: impl, unit
2026-06-09T03:00:38.5884782Z 
2026-06-09T03:00:38.5884871Z ### REQ-EP-3
2026-06-09T03:00:38.5885040Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-09T03:00:38.5885135Z - Required stages: impl, unit
2026-06-09T03:00:38.5885163Z 
2026-06-09T03:00:38.5885249Z ### REQ-EP-4
2026-06-09T03:00:38.5885383Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-09T03:00:38.5885487Z - Required stages: impl, unit
2026-06-09T03:00:38.5885515Z 
2026-06-09T03:00:38.5885602Z ### REQ-EP-5
2026-06-09T03:00:38.5886203Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-09T03:00:38.5886309Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5886346Z 
2026-06-09T03:00:38.5886435Z ### REQ-INST-1
2026-06-09T03:00:38.5886578Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-09T03:00:38.5886673Z - Required stages: 
2026-06-09T03:00:38.5886701Z 
2026-06-09T03:00:38.5886790Z ### REQ-INST-2
2026-06-09T03:00:38.5886900Z - Title: Per-node files, synced Psyche mind
2026-06-09T03:00:38.5887091Z - Required stages: impl, unit
2026-06-09T03:00:38.5887119Z 
2026-06-09T03:00:38.5887215Z ### REQ-INST-3
2026-06-09T03:00:38.5887358Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-09T03:00:38.5887467Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5887496Z 
2026-06-09T03:00:38.5887588Z ### REQ-INST-4
2026-06-09T03:00:38.5887739Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-09T03:00:38.5887840Z - Required stages: impl, unit
2026-06-09T03:00:38.5887864Z 
2026-06-09T03:00:38.5887949Z ### REQ-INST-5
2026-06-09T03:00:38.5888106Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-09T03:00:38.5888227Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5888250Z 
2026-06-09T03:00:38.5888335Z ### REQ-INST-6
2026-06-09T03:00:38.5888503Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-09T03:00:38.5888598Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5888626Z 
2026-06-09T03:00:38.5888717Z ### REQ-INST-7
2026-06-09T03:00:38.5888842Z - Title: Subnet registry + bare-id resolution policy
2026-06-09T03:00:38.5888941Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5888969Z 
2026-06-09T03:00:38.5889174Z ### REQ-INST-8
2026-06-09T03:00:38.5889315Z - Title: Remote-control mode distinct from local operation
2026-06-09T03:00:38.5889414Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5889443Z 
2026-06-09T03:00:38.5889535Z ### REQ-INST-9
2026-06-09T03:00:38.5889700Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-09T03:00:38.5889801Z - Required stages: impl, unit
2026-06-09T03:00:38.5889830Z 
2026-06-09T03:00:38.5889921Z ### REQ-INST-10
2026-06-09T03:00:38.5890111Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-09T03:00:38.5890211Z - Required stages: impl, unit
2026-06-09T03:00:38.5890239Z 
2026-06-09T03:00:38.5890330Z ### REQ-INST-11
2026-06-09T03:00:38.5890521Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-09T03:00:38.5890616Z - Required stages: impl, unit
2026-06-09T03:00:38.5890645Z 
2026-06-09T03:00:38.5890736Z ### REQ-INST-12
2026-06-09T03:00:38.5891012Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-09T03:00:38.5891103Z - Required stages: impl, unit
2026-06-09T03:00:38.5891136Z 
2026-06-09T03:00:38.5891221Z ### REQ-INST-13
2026-06-09T03:00:38.5891385Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-09T03:00:38.5891480Z - Required stages: impl, unit
2026-06-09T03:00:38.5891507Z 
2026-06-09T03:00:38.5891690Z ### REQ-INST-14
2026-06-09T03:00:38.5892027Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-09T03:00:38.5892127Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5892156Z 
2026-06-09T03:00:38.5892240Z ### REQ-INST-15
2026-06-09T03:00:38.5892903Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-09T03:00:38.5893005Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5893029Z 
2026-06-09T03:00:38.5893118Z ### REQ-REACH-1
2026-06-09T03:00:38.5893257Z - Title: Off-node remote-drive detection + file transfer
2026-06-09T03:00:38.5893353Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5893377Z 
2026-06-09T03:00:38.5893466Z ### REQ-REACH-2
2026-06-09T03:00:38.5893615Z - Title: Remote command execution (deferred, consent-gated)
2026-06-09T03:00:38.5893706Z - Required stages: 
2026-06-09T03:00:38.5893734Z 
2026-06-09T03:00:38.5893820Z ### REQ-MSG-1
2026-06-09T03:00:38.5894216Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-09T03:00:38.5894307Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5894340Z 
2026-06-09T03:00:38.5894429Z ### REQ-MSG-2
2026-06-09T03:00:38.5894676Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-09T03:00:38.5894779Z - Required stages: impl, unit
2026-06-09T03:00:38.5894807Z 
2026-06-09T03:00:38.5894894Z ### REQ-MSG-3
2026-06-09T03:00:38.5895232Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-09T03:00:38.5895332Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5895367Z 
2026-06-09T03:00:38.5895446Z ### REQ-MSG-4
2026-06-09T03:00:38.5896201Z - Title: Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type="msg" from=…> otherwise, chunk oversized lines into EVENT-PART
2026-06-09T03:00:38.5896300Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5896333Z 
2026-06-09T03:00:38.5896429Z ### REQ-NODE-IDENTITY
2026-06-09T03:00:38.5896705Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-09T03:00:38.5896802Z - Required stages: impl, unit
2026-06-09T03:00:38.5896830Z 
2026-06-09T03:00:38.5896925Z ### REQ-NET-1
2026-06-09T03:00:38.5897261Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-09T03:00:38.5897370Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5897398Z 
2026-06-09T03:00:38.5897504Z ### REQ-NET-2
2026-06-09T03:00:38.5897670Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-09T03:00:38.5897766Z - Required stages: impl
2026-06-09T03:00:38.5897794Z 
2026-06-09T03:00:38.5897880Z ### REQ-NET-3
2026-06-09T03:00:38.5898032Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-09T03:00:38.5898134Z - Required stages: impl, unit
2026-06-09T03:00:38.5898162Z 
2026-06-09T03:00:38.5898248Z ### REQ-PAIR-1
2026-06-09T03:00:38.5898352Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-09T03:00:38.5898444Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5898472Z 
2026-06-09T03:00:38.5898567Z ### REQ-PAIR-2
2026-06-09T03:00:38.5898695Z - Title: Local trust store with TOFU + warn-on-change
2026-06-09T03:00:38.5898783Z - Required stages: 
2026-06-09T03:00:38.5898810Z 
2026-06-09T03:00:38.5898900Z ### REQ-PAIR-3
2026-06-09T03:00:38.5899029Z - Title: Fetch current pairing code from any paired node
2026-06-09T03:00:38.5899125Z - Required stages: impl, unit
2026-06-09T03:00:38.5899149Z 
2026-06-09T03:00:38.5899339Z ### REQ-PAIR-4
2026-06-09T03:00:38.5899440Z - Title: Subnet naming on first pairing
2026-06-09T03:00:38.5899538Z - Required stages: impl, unit
2026-06-09T03:00:38.5899567Z 
2026-06-09T03:00:38.5899652Z ### REQ-PAIR-5
2026-06-09T03:00:38.5899922Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-09T03:00:38.5900017Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5900051Z 
2026-06-09T03:00:38.5900138Z ### REQ-PAIR-6
2026-06-09T03:00:38.5900380Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-09T03:00:38.5900476Z - Required stages: impl, unit
2026-06-09T03:00:38.5900504Z 
2026-06-09T03:00:38.5900594Z ### REQ-PAIR-7
2026-06-09T03:00:38.5900738Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-09T03:00:38.5900833Z - Required stages: 
2026-06-09T03:00:38.5900856Z 
2026-06-09T03:00:38.5900966Z ### REQ-SUBNET-1
2026-06-09T03:00:38.5901257Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-09T03:00:38.5901353Z - Required stages: impl, unit
2026-06-09T03:00:38.5901382Z 
2026-06-09T03:00:38.5901467Z ### REQ-SUBNET-2
2026-06-09T03:00:38.5901678Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-09T03:00:38.5901777Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5901805Z 
2026-06-09T03:00:38.5901896Z ### REQ-SUBNET-3
2026-06-09T03:00:38.5902143Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-09T03:00:38.5902240Z - Required stages: impl, unit
2026-06-09T03:00:38.5902269Z 
2026-06-09T03:00:38.5902364Z ### REQ-SUBNET-4
2026-06-09T03:00:38.5902625Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-09T03:00:38.5902721Z - Required stages: impl, unit
2026-06-09T03:00:38.5902759Z 
2026-06-09T03:00:38.5902853Z ### REQ-DOCS-6
2026-06-09T03:00:38.5903139Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-09T03:00:38.5903231Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5903260Z 
2026-06-09T03:00:38.5903345Z ### REQ-SEC-1
2026-06-09T03:00:38.5903683Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-09T03:00:38.5903778Z - Required stages: impl, unit
2026-06-09T03:00:38.5904036Z 
2026-06-09T03:00:38.5904127Z ### REQ-NOTIF-1
2026-06-09T03:00:38.5904446Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-09T03:00:38.5904552Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5904576Z 
2026-06-09T03:00:38.5904660Z ### REQ-NOTIF-2
2026-06-09T03:00:38.5904895Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-09T03:00:38.5905008Z - Required stages: doc, impl, unit, int
2026-06-09T03:00:38.5905036Z 
2026-06-09T03:00:38.5905122Z ### REQ-UPD-1
2026-06-09T03:00:38.5905227Z - Title: Peer-propagated update over P2P
2026-06-09T03:00:38.5905325Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5905348Z 
2026-06-09T03:00:38.5905434Z ### REQ-UPD-2
2026-06-09T03:00:38.5905563Z - Title: All binaries signature-verified before handoff
2026-06-09T03:00:38.5905658Z - Required stages: impl, unit
2026-06-09T03:00:38.5905687Z 
2026-06-09T03:00:38.5905778Z ### REQ-UPD-3
2026-06-09T03:00:38.5905932Z - Title: No endpoint process terminates/suspends during self-update
2026-06-09T03:00:38.5906025Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5906054Z 
2026-06-09T03:00:38.5906136Z ### REQ-UPD-4
2026-06-09T03:00:38.5906302Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-09T03:00:38.5906398Z - Required stages: impl, unit
2026-06-09T03:00:38.5906508Z 
2026-06-09T03:00:38.5906589Z ### REQ-UPD-5
2026-06-09T03:00:38.5906727Z - Title: spt-core ripple-updates registered adapters
2026-06-09T03:00:38.5906818Z - Required stages: impl, unit
2026-06-09T03:00:38.5906846Z 
2026-06-09T03:00:38.5906932Z ### REQ-UPD-6
2026-06-09T03:00:38.5907784Z - Title: Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)
2026-06-09T03:00:38.5907882Z - Required stages: doc, impl, unit, int
2026-06-09T03:00:38.5907910Z 
2026-06-09T03:00:38.5908001Z ### REQ-TERM-1
2026-06-09T03:00:38.5908150Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-09T03:00:38.5908249Z - Required stages: impl, unit
2026-06-09T03:00:38.5908277Z 
2026-06-09T03:00:38.5908359Z ### REQ-TERM-2
2026-06-09T03:00:38.5908516Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-09T03:00:38.5908621Z - Required stages: impl, unit
2026-06-09T03:00:38.5908650Z 
2026-06-09T03:00:38.5908732Z ### REQ-TERM-3
2026-06-09T03:00:38.5908854Z - Title: Byte-stream remote terminal streaming for v1
2026-06-09T03:00:38.5908955Z - Required stages: impl, unit
2026-06-09T03:00:38.5908984Z 
2026-06-09T03:00:38.5909065Z ### REQ-TERM-4
2026-06-09T03:00:38.5909385Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-09T03:00:38.5909493Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5909522Z 
2026-06-09T03:00:38.5909609Z ### REQ-FRONT-1
2026-06-09T03:00:38.5909760Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-09T03:00:38.5909856Z - Required stages: 
2026-06-09T03:00:38.5909880Z 
2026-06-09T03:00:38.5909972Z ### REQ-INSTALL-1
2026-06-09T03:00:38.5910146Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-09T03:00:38.5910260Z - Required stages: doc, impl, int
2026-06-09T03:00:38.5910289Z 
2026-06-09T03:00:38.5910387Z ### REQ-INSTALL-2
2026-06-09T03:00:38.5910510Z - Title: Marketplace-repackaging-friendly install
2026-06-09T03:00:38.5910606Z - Required stages: doc
2026-06-09T03:00:38.5910635Z 
2026-06-09T03:00:38.5910721Z ### REQ-INSTALL-3
2026-06-09T03:00:38.5910849Z - Title: Idempotent + interactive-optional first run
2026-06-09T03:00:38.5910941Z - Required stages: impl, int
2026-06-09T03:00:38.5910974Z 
2026-06-09T03:00:38.5911059Z ### REQ-INSTALL-4
2026-06-09T03:00:38.5911856Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-09T03:00:38.5911956Z - Required stages: impl, unit
2026-06-09T03:00:38.5911984Z 
2026-06-09T03:00:38.5912075Z ### REQ-MIGRATE-1
2026-06-09T03:00:38.5912228Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-09T03:00:38.5912327Z - Required stages: 
2026-06-09T03:00:38.5912351Z 
2026-06-09T03:00:38.5912442Z ### REQ-INFRA-1
2026-06-09T03:00:38.5912600Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-09T03:00:38.5912694Z - Required stages: 
2026-06-09T03:00:38.5912723Z 
2026-06-09T03:00:38.5912810Z ### REQ-INSTALL-5
2026-06-09T03:00:38.5913257Z - Title: Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration
2026-06-09T03:00:38.5913356Z - Required stages: impl, int
2026-06-09T03:00:38.5913384Z 
2026-06-09T03:00:38.5913476Z ### REQ-REL-1
2026-06-09T03:00:38.5913820Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-09T03:00:38.5913925Z - Required stages: doc, impl
2026-06-09T03:00:38.5913953Z 
2026-06-09T03:00:38.5914144Z ### REQ-REL-2
2026-06-09T03:00:38.5914586Z - Title: Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline
2026-06-09T03:00:38.5914677Z - Required stages: impl, int
2026-06-09T03:00:38.5914706Z 
2026-06-09T03:00:38.5914788Z ### REQ-REL-3
2026-06-09T03:00:38.5915188Z - Title: Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)
2026-06-09T03:00:38.5915302Z - Required stages: impl, unit
2026-06-09T03:00:38.5915331Z 
2026-06-09T03:00:38.5915427Z ### REQ-DOCS-1
2026-06-09T03:00:38.5915606Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-09T03:00:38.5915706Z - Required stages: doc, impl
2026-06-09T03:00:38.5915730Z 
2026-06-09T03:00:38.5915829Z ### REQ-DOCS-2
2026-06-09T03:00:38.5915975Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-09T03:00:38.5916082Z - Required stages: doc, int
2026-06-09T03:00:38.5916110Z 
2026-06-09T03:00:38.5916195Z ### REQ-DOCS-3
2026-06-09T03:00:38.5916387Z - Title: Diátaxis structure; one canonical way to do X
2026-06-09T03:00:38.5916482Z - Required stages: doc
2026-06-09T03:00:38.5916510Z 
2026-06-09T03:00:38.5916600Z ### REQ-DOCS-4
2026-06-09T03:00:38.5916786Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-09T03:00:38.5916881Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5916910Z 
2026-06-09T03:00:38.5917078Z ### REQ-DOCS-5
2026-06-09T03:00:38.5917272Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-09T03:00:38.5917364Z - Required stages: impl, int
2026-06-09T03:00:38.5917392Z 
2026-06-09T03:00:38.5917502Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-09T03:00:38.5917674Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-09T03:00:38.5917768Z - Required stages: impl, unit
2026-06-09T03:00:38.5917807Z 
2026-06-09T03:00:38.5917912Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-09T03:00:38.5918046Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-09T03:00:38.5918149Z - Required stages: impl, unit
2026-06-09T03:00:38.5918177Z 
2026-06-09T03:00:38.5918273Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-09T03:00:38.5918405Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-09T03:00:38.5918499Z - Required stages: impl, unit
2026-06-09T03:00:38.5918528Z 
2026-06-09T03:00:38.5918629Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-09T03:00:38.5918896Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-09T03:00:38.5918991Z - Required stages: impl, unit
2026-06-09T03:00:38.5919019Z 
2026-06-09T03:00:38.5919123Z ### REQ-HAZARD-WORKER-PATH
2026-06-09T03:00:38.5919283Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-09T03:00:38.5919382Z - Required stages: impl, unit
2026-06-09T03:00:38.5919410Z 
2026-06-09T03:00:38.5919515Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-09T03:00:38.5919697Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-09T03:00:38.5919796Z - Required stages: 
2026-06-09T03:00:38.5919820Z 
2026-06-09T03:00:38.5919926Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-09T03:00:38.5920054Z - Title: Stdin session_id precedence over env (2.2)
2026-06-09T03:00:38.5920149Z - Required stages: 
2026-06-09T03:00:38.5920179Z 
2026-06-09T03:00:38.5920283Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-09T03:00:38.5920436Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-09T03:00:38.5920542Z - Required stages: impl, unit
2026-06-09T03:00:38.5920570Z 
2026-06-09T03:00:38.5920673Z ### REQ-HAZARD-GEN-START-NOW
2026-06-09T03:00:38.5920806Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-09T03:00:38.5920901Z - Required stages: impl, int
2026-06-09T03:00:38.5920929Z 
2026-06-09T03:00:38.5921033Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-09T03:00:38.5921176Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-09T03:00:38.5921376Z - Required stages: impl, unit
2026-06-09T03:00:38.5921399Z 
2026-06-09T03:00:38.5921515Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-09T03:00:38.5921662Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-09T03:00:38.5921768Z - Required stages: impl, unit
2026-06-09T03:00:38.5921791Z 
2026-06-09T03:00:38.5921896Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-09T03:00:38.5922067Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-09T03:00:38.5922178Z - Required stages: impl, unit
2026-06-09T03:00:38.5922210Z 
2026-06-09T03:00:38.5922315Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-09T03:00:38.5922465Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-09T03:00:38.5922559Z - Required stages: impl, unit
2026-06-09T03:00:38.5922587Z 
2026-06-09T03:00:38.5922697Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-09T03:00:38.5922864Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-09T03:00:38.5922969Z - Required stages: impl, unit
2026-06-09T03:00:38.5922997Z 
2026-06-09T03:00:38.5923104Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-09T03:00:38.5923298Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-09T03:00:38.5923399Z - Required stages: impl, unit
2026-06-09T03:00:38.5923423Z 
2026-06-09T03:00:38.5923530Z ### REQ-HAZARD-ID-CHARSET
2026-06-09T03:00:38.5923755Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-09T03:00:38.5923859Z - Required stages: impl, unit
2026-06-09T03:00:38.5923888Z 
2026-06-09T03:00:38.5923988Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-09T03:00:38.5924160Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-09T03:00:38.5924255Z - Required stages: impl, unit
2026-06-09T03:00:38.5924288Z 
2026-06-09T03:00:38.5924389Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-09T03:00:38.5924632Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-09T03:00:38.5924733Z - Required stages: impl, unit
2026-06-09T03:00:38.5924761Z 
2026-06-09T03:00:38.5924865Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-09T03:00:38.5925218Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-09T03:00:38.5925315Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5925343Z 
2026-06-09T03:00:38.5925452Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-09T03:00:38.5925930Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-09T03:00:38.5926030Z - Required stages: impl, unit
2026-06-09T03:00:38.5926058Z 
2026-06-09T03:00:38.5926170Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-09T03:00:38.5926286Z - Title: Deferred rows survive poll drain (4.4)
2026-06-09T03:00:38.5926394Z - Required stages: impl, unit
2026-06-09T03:00:38.5926431Z 
2026-06-09T03:00:38.5926530Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-09T03:00:38.5926656Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-09T03:00:38.5926755Z - Required stages: impl, unit
2026-06-09T03:00:38.5926793Z 
2026-06-09T03:00:38.5926893Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-09T03:00:38.5927112Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-09T03:00:38.5927208Z - Required stages: impl, unit
2026-06-09T03:00:38.5927238Z 
2026-06-09T03:00:38.5927342Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-09T03:00:38.5927499Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-09T03:00:38.5927605Z - Required stages: impl, unit
2026-06-09T03:00:38.5927633Z 
2026-06-09T03:00:38.5927738Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-09T03:00:38.5927872Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-09T03:00:38.5927971Z - Required stages: impl, unit
2026-06-09T03:00:38.5928000Z 
2026-06-09T03:00:38.5928099Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-09T03:00:38.5928338Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-09T03:00:38.5928438Z - Required stages: impl, unit
2026-06-09T03:00:38.5928463Z 
2026-06-09T03:00:38.5928573Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-09T03:00:38.5928747Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-09T03:00:38.5928838Z - Required stages: impl, unit
2026-06-09T03:00:38.5928866Z 
2026-06-09T03:00:38.5928969Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-09T03:00:38.5929141Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-09T03:00:38.5929246Z - Required stages: impl, unit
2026-06-09T03:00:38.5929275Z 
2026-06-09T03:00:38.5929383Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-09T03:00:38.5929532Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-09T03:00:38.5929637Z - Required stages: impl, unit
2026-06-09T03:00:38.5929665Z 
2026-06-09T03:00:38.5929775Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-09T03:00:38.5929908Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-09T03:00:38.5930017Z - Required stages: impl, unit
2026-06-09T03:00:38.5930047Z 
2026-06-09T03:00:38.5930152Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-09T03:00:38.5930356Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-09T03:00:38.5930458Z - Required stages: impl, unit
2026-06-09T03:00:38.5930486Z 
2026-06-09T03:00:38.5930595Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-09T03:00:38.5931116Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-09T03:00:38.5931214Z - Required stages: impl, unit
2026-06-09T03:00:38.5931238Z 
2026-06-09T03:00:38.5931351Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-09T03:00:38.5932451Z - Title: Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)
2026-06-09T03:00:38.5932551Z - Required stages: impl, unit
2026-06-09T03:00:38.5932580Z 
2026-06-09T03:00:38.5932681Z ### REQ-HAZARD-CONPTY-DSR
2026-06-09T03:00:38.5932875Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-09T03:00:38.5932967Z - Required stages: impl, unit
2026-06-09T03:00:38.5932996Z 
2026-06-09T03:00:38.5933200Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-09T03:00:38.5933591Z - Title: Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)
2026-06-09T03:00:38.5933715Z - Required stages: impl, unit
2026-06-09T03:00:38.5933748Z 
2026-06-09T03:00:38.5933901Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-09T03:00:38.5934434Z - Title: Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)
2026-06-09T03:00:38.5934533Z - Required stages: impl, unit
2026-06-09T03:00:38.5934563Z 
2026-06-09T03:00:38.5934663Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-09T03:00:38.5935482Z - Title: Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)
2026-06-09T03:00:38.5935589Z - Required stages: impl, unit
2026-06-09T03:00:38.5935617Z 
2026-06-09T03:00:38.5935716Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-09T03:00:38.5935913Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-09T03:00:38.5936012Z - Required stages: impl, unit
2026-06-09T03:00:38.5936121Z 
2026-06-09T03:00:38.5936228Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-09T03:00:38.5936466Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-09T03:00:38.5936566Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5936595Z 
2026-06-09T03:00:38.5936698Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-09T03:00:38.5936930Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-09T03:00:38.5937124Z - Required stages: impl, unit
2026-06-09T03:00:38.5937153Z 
2026-06-09T03:00:38.5937273Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-09T03:00:38.5937658Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-09T03:00:38.5937759Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5937788Z 
2026-06-09T03:00:38.5937902Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-09T03:00:38.5938655Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-09T03:00:38.5938752Z - Required stages: impl, unit
2026-06-09T03:00:38.5938780Z 
2026-06-09T03:00:38.5938893Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-09T03:00:38.5939488Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-09T03:00:38.5939591Z - Required stages: impl, unit
2026-06-09T03:00:38.5939619Z 
2026-06-09T03:00:38.5939725Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-09T03:00:38.5940340Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-09T03:00:38.5940445Z - Required stages: impl, unit
2026-06-09T03:00:38.5940478Z 
2026-06-09T03:00:38.5940587Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-09T03:00:38.5941070Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-09T03:00:38.5941174Z - Required stages: impl, unit
2026-06-09T03:00:38.5941207Z 
2026-06-09T03:00:38.5941418Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-09T03:00:38.5942248Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-09T03:00:38.5942344Z - Required stages: impl, unit
2026-06-09T03:00:38.5942383Z 
2026-06-09T03:00:38.5942491Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-09T03:00:38.5943227Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-09T03:00:38.5943331Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5943359Z 
2026-06-09T03:00:38.5943454Z ### REQ-CONSENT-1
2026-06-09T03:00:38.5944303Z - Title: Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)
2026-06-09T03:00:38.5944398Z - Required stages: impl, unit
2026-06-09T03:00:38.5944428Z 
2026-06-09T03:00:38.5944524Z ### REQ-CONSENT-2
2026-06-09T03:00:38.5945394Z - Title: Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)
2026-06-09T03:00:38.5945496Z - Required stages: impl, unit
2026-06-09T03:00:38.5945524Z 
2026-06-09T03:00:38.5945619Z ### REQ-PRES-1
2026-06-09T03:00:38.5947031Z - Title: Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)
2026-06-09T03:00:38.5947173Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5947210Z 
2026-06-09T03:00:38.5947305Z ### REQ-SHELL-1
2026-06-09T03:00:38.5948129Z - Title: Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)
2026-06-09T03:00:38.5948237Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5948261Z 
2026-06-09T03:00:38.5948358Z ### REQ-SHELL-2
2026-06-09T03:00:38.5949806Z - Title: Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)
2026-06-09T03:00:38.5949919Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5949958Z 
2026-06-09T03:00:38.5950085Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-09T03:00:38.5951396Z - Title: The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)
2026-06-09T03:00:38.5951506Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5951535Z 
2026-06-09T03:00:38.5951639Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-09T03:00:38.5952856Z - Title: A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)
2026-06-09T03:00:38.5952967Z - Required stages: doc, impl, unit
2026-06-09T03:00:38.5952995Z 
2026-06-09T03:00:38.5953075Z ### REQ-CLI-1
2026-06-09T03:00:38.5954058Z - Title: spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)
2026-06-09T03:00:38.5954164Z - Required stages: impl, unit
2026-06-09T03:00:38.5954192Z 
2026-06-09T03:00:38.5954282Z ### REQ-CLI-2
2026-06-09T03:00:38.5954939Z - Title: spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)
2026-06-09T03:00:38.5955132Z - Required stages: impl, unit
2026-06-09T03:00:38.5955160Z 
2026-06-09T03:00:38.5955268Z ### REQ-CLI-3
2026-06-09T03:00:38.5955954Z - Title: Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)
2026-06-09T03:00:38.5956051Z - Required stages: impl, unit
2026-06-09T03:00:38.5956084Z 
2026-06-09T03:00:38.5956188Z ### REQ-SUBNET-5
2026-06-09T03:00:38.5957499Z - Title: Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)
2026-06-09T03:00:38.5957624Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5957654Z 
2026-06-09T03:00:38.5957743Z ### REQ-SUBNET-6
2026-06-09T03:00:38.5958393Z - Title: Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)
2026-06-09T03:00:38.5958497Z - Required stages: impl, unit
2026-06-09T03:00:38.5958525Z 
2026-06-09T03:00:38.5958618Z ### REQ-SUBNET-7
2026-06-09T03:00:38.5960206Z - Title: Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)
2026-06-09T03:00:38.5960309Z - Required stages: impl, unit
2026-06-09T03:00:38.5960337Z 
2026-06-09T03:00:38.5960432Z ### REQ-SUBNET-8
2026-06-09T03:00:38.5961636Z - Title: Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)
2026-06-09T03:00:38.5961741Z - Required stages: impl, unit
2026-06-09T03:00:38.5961765Z 
2026-06-09T03:00:38.5961861Z ### REQ-INSTALL-6
2026-06-09T03:00:38.5963027Z - Title: Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)
2026-06-09T03:00:38.5963123Z - Required stages: impl, unit
2026-06-09T03:00:38.5963151Z 
2026-06-09T03:00:38.5963250Z ### REQ-INSTALL-7
2026-06-09T03:00:38.5964366Z - Title: Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)
2026-06-09T03:00:38.5964461Z - Required stages: impl
2026-06-09T03:00:38.5964489Z 
2026-06-09T03:00:38.5964681Z ### REQ-INSTALL-8
2026-06-09T03:00:38.5965654Z - Title: OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)
2026-06-09T03:00:38.5965748Z - Required stages: impl
2026-06-09T03:00:38.5965781Z 
2026-06-09T03:00:38.5965885Z ### REQ-CONV-1
2026-06-09T03:00:38.5967312Z - Title: Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)
2026-06-09T03:00:38.5967420Z - Required stages: impl, unit
2026-06-09T03:00:38.5967454Z 
2026-06-09T03:00:38.5967546Z ### REQ-CONV-2
2026-06-09T03:00:38.5968564Z - Title: Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)
2026-06-09T03:00:38.5968666Z - Required stages: impl, unit
2026-06-09T03:00:38.5968700Z 
2026-06-09T03:00:38.5968790Z ### REQ-PAIR-8
2026-06-09T03:00:38.5970006Z - Title: NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)
2026-06-09T03:00:38.5970122Z - Required stages: impl, unit
2026-06-09T03:00:38.5970146Z 
2026-06-09T03:00:38.5970244Z ### REQ-DAEMON-5
2026-06-09T03:00:38.5971600Z - Title: Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)
2026-06-09T03:00:38.5971705Z - Required stages: impl, unit
2026-06-09T03:00:38.5971735Z 
2026-06-09T03:00:38.5971830Z ### REQ-DAEMON-6
2026-06-09T03:00:38.5973673Z - Title: Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.
2026-06-09T03:00:38.5973800Z - Required stages: impl, unit
2026-06-09T03:00:38.5973833Z 
2026-06-09T03:00:38.5973928Z ### REQ-DAEMON-7
2026-06-09T03:00:38.5975270Z - Title: `daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).
2026-06-09T03:00:38.5975468Z - Required stages: impl, unit
2026-06-09T03:00:38.5975498Z 
2026-06-09T03:00:38.5975594Z ### REQ-DAEMON-8
2026-06-09T03:00:38.5976488Z - Title: Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.
2026-06-09T03:00:38.5976594Z - Required stages: impl, unit
2026-06-09T03:00:38.5976622Z 
2026-06-09T03:00:38.5976726Z ### REQ-HAZARD-EPOCH-RESET
2026-06-09T03:00:38.5978053Z - Title: Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)
2026-06-09T03:00:38.5978168Z - Required stages: 
2026-06-09T03:00:38.5978196Z 
2026-06-09T03:00:38.5978281Z ### REQ-MESH-1
2026-06-09T03:00:38.5980319Z - Title: Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).
2026-06-09T03:00:38.5980438Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5980466Z 
2026-06-09T03:00:38.5980561Z ### REQ-MESH-2
2026-06-09T03:00:38.5983161Z - Title: Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).
2026-06-09T03:00:38.5983282Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5983310Z 
2026-06-09T03:00:38.5983410Z ### REQ-MESH-3
2026-06-09T03:00:38.5985013Z - Title: Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.
2026-06-09T03:00:38.5985118Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5985147Z 
2026-06-09T03:00:38.5985233Z ### REQ-MESH-4
2026-06-09T03:00:38.5987392Z - Title: Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.
2026-06-09T03:00:38.5987717Z - Required stages: impl, unit, int
2026-06-09T03:00:38.5987741Z 
2026-06-09T03:00:38.5987836Z ### REQ-MESH-5
2026-06-09T03:00:38.5989160Z - Title: Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.
2026-06-09T03:00:38.5989266Z - Required stages: impl, unit
2026-06-09T03:00:38.5989296Z 
2026-06-09T03:00:38.5989391Z ### REQ-MESH-6
2026-06-09T03:00:38.5990579Z - Title: Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)
2026-06-09T03:00:38.5990683Z - Required stages: impl, unit
2026-06-09T03:00:38.5990707Z 
2026-06-09T03:00:38.5990802Z ## How to report back
2026-06-09T03:00:38.5990841Z 
2026-06-09T03:00:38.5991003Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-09T03:00:38.5991031Z 
2026-06-09T03:00:38.5991117Z     {
2026-06-09T03:00:38.5991223Z       "code": "requirement_quality",
2026-06-09T03:00:38.5991323Z       "requirementId": "REQ-...",
2026-06-09T03:00:38.5991489Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-09T03:00:38.5991581Z       "message": "<short reason>",
2026-06-09T03:00:38.5991703Z       "suggestedRevision": "<optional rewrite>"
2026-06-09T03:00:38.5991896Z     }
2026-06-09T03:00:38.5991925Z 
2026-06-09T03:00:38.5992098Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-09T03:00:38.5992242Z deterministic findings above don't need to be repeated.
2026-06-09T03:00:38.6073161Z Post job cleanup.
2026-06-09T03:00:38.6721641Z [command]/usr/bin/git version
2026-06-09T03:00:38.6752152Z git version 2.43.0
2026-06-09T03:00:38.6782797Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/dee6cfc6-3640-46b3-b79f-b824c473321c' before making global git config changes
2026-06-09T03:00:38.6783055Z Adding repository directory to the temporary git global config as a safe directory
2026-06-09T03:00:38.6786622Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-09T03:00:38.6814917Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-09T03:00:38.6839315Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-06-09T03:00:38.7061040Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-09T03:00:38.7081376Z http.https://github.com/.extraheader
2026-06-09T03:00:38.7088483Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-09T03:00:38.7112499Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-06-09T03:00:38.7289058Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-09T03:00:38.7311790Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-09T03:00:38.7606209Z Cleaning up orphan processes
