﻿2026-06-10T07:07:58.7664687Z Current runner version: '2.334.0'
2026-06-10T07:07:58.7669583Z Runner name: 'kitsubito'
2026-06-10T07:07:58.7670222Z Runner group name: 'Default'
2026-06-10T07:07:58.7670994Z Machine name: 'KITSUBITO'
2026-06-10T07:07:58.7723566Z ##[group]GITHUB_TOKEN Permissions
2026-06-10T07:07:58.7726047Z Contents: read
2026-06-10T07:07:58.7726428Z Metadata: read
2026-06-10T07:07:58.7726795Z Packages: read
2026-06-10T07:07:58.7727147Z ##[endgroup]
2026-06-10T07:07:58.7729076Z Secret source: Actions
2026-06-10T07:07:58.7729573Z Prepare workflow directory
2026-06-10T07:07:58.8078170Z Prepare all required actions
2026-06-10T07:07:58.8106030Z Getting action download info
2026-06-10T07:07:59.3554756Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-10T07:07:59.9425430Z Complete job name: traceability
2026-06-10T07:08:00.0342556Z ##[group]Run actions/checkout@v5
2026-06-10T07:08:00.0343662Z with:
2026-06-10T07:08:00.0344333Z   repository: SaberMage/spt-core
2026-06-10T07:08:00.0353068Z   token: ***
2026-06-10T07:08:00.0353770Z   ssh-strict: true
2026-06-10T07:08:00.0354451Z   ssh-user: git
2026-06-10T07:08:00.0355139Z   persist-credentials: true
2026-06-10T07:08:00.0355897Z   clean: true
2026-06-10T07:08:00.0356585Z   sparse-checkout-cone-mode: true
2026-06-10T07:08:00.0357404Z   fetch-depth: 1
2026-06-10T07:08:00.0358077Z   fetch-tags: false
2026-06-10T07:08:00.0358927Z   show-progress: true
2026-06-10T07:08:00.0359800Z   lfs: false
2026-06-10T07:08:00.0360480Z   submodules: false
2026-06-10T07:08:00.0361189Z   set-safe-directory: true
2026-06-10T07:08:00.0362241Z ##[endgroup]
2026-06-10T07:08:00.1182043Z Syncing repository: SaberMage/spt-core
2026-06-10T07:08:00.1185158Z ##[group]Getting Git version info
2026-06-10T07:08:00.1187108Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-10T07:08:00.1189855Z [command]/usr/bin/git version
2026-06-10T07:08:00.1191014Z git version 2.43.0
2026-06-10T07:08:00.1194771Z ##[endgroup]
2026-06-10T07:08:00.1201733Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/53596343-9791-46ce-93e4-c1ce45f1d036' before making global git config changes
2026-06-10T07:08:00.1205453Z Adding repository directory to the temporary git global config as a safe directory
2026-06-10T07:08:00.1208080Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-10T07:08:00.1233360Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-10T07:08:00.1252944Z https://github.com/SaberMage/spt-core
2026-06-10T07:08:00.1264930Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-10T07:08:00.1267821Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-10T07:08:00.1284805Z refs/heads/main
2026-06-10T07:08:00.1292575Z [command]/usr/bin/git checkout --detach
2026-06-10T07:08:00.1332212Z HEAD is now at 348a739 feat(daemon): restoration D3-4 — V6 N-1 argv-compat harness scaffold
2026-06-10T07:08:00.1366701Z [command]/usr/bin/git branch --delete --force main
2026-06-10T07:08:00.1389606Z Deleted branch main (was 348a739).
2026-06-10T07:08:00.1420628Z ##[endgroup]
2026-06-10T07:08:00.1421365Z [command]/usr/bin/git submodule status
2026-06-10T07:08:00.1600258Z ##[group]Cleaning the repository
2026-06-10T07:08:00.1601571Z [command]/usr/bin/git clean -ffdx
2026-06-10T07:08:00.1627004Z Removing traceable-reqs
2026-06-10T07:08:00.1633056Z [command]/usr/bin/git reset --hard HEAD
2026-06-10T07:08:00.1671310Z HEAD is now at 348a739 feat(daemon): restoration D3-4 — V6 N-1 argv-compat harness scaffold
2026-06-10T07:08:00.1675468Z ##[endgroup]
2026-06-10T07:08:00.1676870Z ##[group]Disabling automatic garbage collection
2026-06-10T07:08:00.1679537Z [command]/usr/bin/git config --local gc.auto 0
2026-06-10T07:08:00.1702886Z ##[endgroup]
2026-06-10T07:08:00.1704006Z ##[group]Setting up auth
2026-06-10T07:08:00.1708017Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-10T07:08:00.1730779Z [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-10T07:08:00.1915684Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-10T07:08:00.1941464Z [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-10T07:08:00.2120337Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-10T07:08:00.2144788Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-10T07:08:00.2330687Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-10T07:08:00.2365277Z ##[endgroup]
2026-06-10T07:08:00.2366716Z ##[group]Fetching the repository
2026-06-10T07:08:00.2371827Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +612b1dee3dbb7c7acf01717adc9601ee639f5b57:refs/remotes/origin/main
2026-06-10T07:08:00.8018051Z From https://github.com/SaberMage/spt-core
2026-06-10T07:08:00.8019967Z  + 348a739...612b1de 612b1dee3dbb7c7acf01717adc9601ee639f5b57 -> origin/main  (forced update)
2026-06-10T07:08:00.8034783Z ##[endgroup]
2026-06-10T07:08:00.8035889Z ##[group]Determining the checkout info
2026-06-10T07:08:00.8037162Z ##[endgroup]
2026-06-10T07:08:00.8039786Z [command]/usr/bin/git sparse-checkout disable
2026-06-10T07:08:00.8073988Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-10T07:08:00.8094656Z ##[group]Checking out the ref
2026-06-10T07:08:00.8095921Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main
2026-06-10T07:08:00.8153276Z Warning: you are leaving 1 commit behind, not connected to
2026-06-10T07:08:00.8154422Z any of your branches:
2026-06-10T07:08:00.8154980Z 
2026-06-10T07:08:00.8156143Z   348a739 feat(daemon): restoration D3-4 — V6 N-1 argv-compat harness scaffold
2026-06-10T07:08:00.8157397Z 
2026-06-10T07:08:00.8158150Z If you want to keep it by creating a new branch, this may be a good time
2026-06-10T07:08:00.8159897Z to do so with:
2026-06-10T07:08:00.8160473Z 
2026-06-10T07:08:00.8161031Z  git branch <new-branch-name> 348a739
2026-06-10T07:08:00.8161812Z 
2026-06-10T07:08:00.8162305Z Switched to a new branch 'main'
2026-06-10T07:08:00.8163502Z branch 'main' set up to track 'origin/main'.
2026-06-10T07:08:00.8166794Z ##[endgroup]
2026-06-10T07:08:00.8195225Z [command]/usr/bin/git log -1 --format=%H
2026-06-10T07:08:00.8215378Z 612b1dee3dbb7c7acf01717adc9601ee639f5b57
2026-06-10T07:08:00.8430559Z ##[group]Run WANT=0.1.2
2026-06-10T07:08:00.8431622Z [36;1mWANT=0.1.2[0m
2026-06-10T07:08:00.8432475Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-10T07:08:00.8433715Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-10T07:08:00.8434894Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-10T07:08:00.8435814Z [36;1melse[0m
2026-06-10T07:08:00.8436803Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-10T07:08:00.8438218Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-10T07:08:00.8439454Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-10T07:08:00.8440360Z [36;1m  rm -rf "$SRC"[0m
2026-06-10T07:08:00.8441238Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-10T07:08:00.8442911Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-10T07:08:00.8444628Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-10T07:08:00.8445993Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-10T07:08:00.8447118Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-10T07:08:00.8448478Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-10T07:08:00.8449554Z [36;1mfi[0m
2026-06-10T07:08:00.8450277Z [36;1m./traceable-reqs --version[0m
2026-06-10T07:08:00.8467823Z shell: /usr/bin/bash -e {0}
2026-06-10T07:08:00.8468635Z env:
2026-06-10T07:08:00.8470469Z   GH_TOKEN: ***
2026-06-10T07:08:00.8471216Z ##[endgroup]
2026-06-10T07:08:00.8558123Z traceable-reqs 0.1.2
2026-06-10T07:08:00.8616057Z ##[group]Run ./traceable-reqs check --json
2026-06-10T07:08:00.8617087Z [36;1m./traceable-reqs check --json[0m
2026-06-10T07:08:00.8630662Z shell: /usr/bin/bash -e {0}
2026-06-10T07:08:00.8631473Z ##[endgroup]
2026-06-10T07:08:00.8804201Z {
2026-06-10T07:08:00.8805207Z   "schemaVersion": 1,
2026-06-10T07:08:00.8806291Z   "summary": {
2026-06-10T07:08:00.8822918Z     "requirementCount": 181,
2026-06-10T07:08:00.8824141Z     "completeCount": 181,
2026-06-10T07:08:00.8825279Z     "incompleteCount": 0,
2026-06-10T07:08:00.8827170Z     "findingCount": 0
2026-06-10T07:08:00.8830265Z   },
2026-06-10T07:08:00.8831447Z   "requirements": [
2026-06-10T07:08:00.8832829Z     {
2026-06-10T07:08:00.8834064Z       "id": "REQ-API-1",
2026-06-10T07:08:00.8835768Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-10T07:08:00.8837516Z       "requiredStages": [
2026-06-10T07:08:00.8838626Z         "impl",
2026-06-10T07:08:00.8839679Z         "unit",
2026-06-10T07:08:00.8840729Z         "int"
2026-06-10T07:08:00.8841687Z       ],
2026-06-10T07:08:00.8842627Z       "stages": {
2026-06-10T07:08:00.8843632Z         "doc": {
2026-06-10T07:08:00.8844653Z           "complete": false,
2026-06-10T07:08:00.8845831Z           "evidence": []
2026-06-10T07:08:00.8846890Z         },
2026-06-10T07:08:00.8847801Z         "impl": {
2026-06-10T07:08:00.8848799Z           "complete": true,
2026-06-10T07:08:00.8849967Z           "evidence": [
2026-06-10T07:08:00.8850993Z             {
2026-06-10T07:08:00.8852015Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:00.8853308Z               "line": 15
2026-06-10T07:08:00.8854350Z             }
2026-06-10T07:08:00.8855271Z           ]
2026-06-10T07:08:00.8856201Z         },
2026-06-10T07:08:00.8857141Z         "int": {
2026-06-10T07:08:00.8858148Z           "complete": true,
2026-06-10T07:08:00.8859325Z           "evidence": [
2026-06-10T07:08:00.8860362Z             {
2026-06-10T07:08:00.8861483Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:00.8862560Z               "line": 13
2026-06-10T07:08:00.8863286Z             }
2026-06-10T07:08:00.8863948Z           ]
2026-06-10T07:08:00.8864577Z         },
2026-06-10T07:08:00.8865215Z         "unit": {
2026-06-10T07:08:00.8865906Z           "complete": true,
2026-06-10T07:08:00.8866670Z           "evidence": [
2026-06-10T07:08:00.8867377Z             {
2026-06-10T07:08:00.8868111Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:00.8869125Z               "line": 442
2026-06-10T07:08:00.8869866Z             },
2026-06-10T07:08:00.8870534Z             {
2026-06-10T07:08:00.8871260Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:00.8872181Z               "line": 448
2026-06-10T07:08:00.8872920Z             },
2026-06-10T07:08:00.8873578Z             {
2026-06-10T07:08:00.8874303Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:00.8875246Z               "line": 515
2026-06-10T07:08:00.8876372Z             }
2026-06-10T07:08:00.8877316Z           ]
2026-06-10T07:08:00.8878232Z         }
2026-06-10T07:08:00.8879220Z       }
2026-06-10T07:08:00.8880098Z     },
2026-06-10T07:08:00.8880975Z     {
2026-06-10T07:08:00.8881881Z       "id": "REQ-API-2",
2026-06-10T07:08:00.8883471Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-10T07:08:00.8885343Z       "requiredStages": [
2026-06-10T07:08:00.8886665Z         "impl",
2026-06-10T07:08:00.8887341Z         "unit",
2026-06-10T07:08:00.8887992Z         "int"
2026-06-10T07:08:00.8888654Z       ],
2026-06-10T07:08:00.8889378Z       "stages": {
2026-06-10T07:08:00.8890303Z         "doc": {
2026-06-10T07:08:00.8890991Z           "complete": false,
2026-06-10T07:08:00.8891774Z           "evidence": []
2026-06-10T07:08:00.8892488Z         },
2026-06-10T07:08:00.8893125Z         "impl": {
2026-06-10T07:08:00.8893811Z           "complete": true,
2026-06-10T07:08:00.8894570Z           "evidence": [
2026-06-10T07:08:00.8895471Z             {
2026-06-10T07:08:00.8896243Z               "path": "crates/spt-store/src/history.rs",
2026-06-10T07:08:00.8897206Z               "line": 15
2026-06-10T07:08:00.8897944Z             },
2026-06-10T07:08:00.8898604Z             {
2026-06-10T07:08:00.8899519Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:00.8900468Z               "line": 20
2026-06-10T07:08:00.8901194Z             },
2026-06-10T07:08:00.8901852Z             {
2026-06-10T07:08:00.8902597Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:00.8903539Z               "line": 139
2026-06-10T07:08:00.8904281Z             },
2026-06-10T07:08:00.8904948Z             {
2026-06-10T07:08:00.8905707Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8906654Z               "line": 21
2026-06-10T07:08:00.8907374Z             },
2026-06-10T07:08:00.8908024Z             {
2026-06-10T07:08:00.8908779Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8909826Z               "line": 38
2026-06-10T07:08:00.8910556Z             },
2026-06-10T07:08:00.8911220Z             {
2026-06-10T07:08:00.8911984Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8912941Z               "line": 190
2026-06-10T07:08:00.8913671Z             },
2026-06-10T07:08:00.8914325Z             {
2026-06-10T07:08:00.8915080Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8916019Z               "line": 232
2026-06-10T07:08:00.8916753Z             },
2026-06-10T07:08:00.8917405Z             {
2026-06-10T07:08:00.8918148Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8919177Z               "line": 262
2026-06-10T07:08:00.8919915Z             },
2026-06-10T07:08:00.8920568Z             {
2026-06-10T07:08:00.8921306Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:00.8922239Z               "line": 17
2026-06-10T07:08:00.8922967Z             },
2026-06-10T07:08:00.8923620Z             {
2026-06-10T07:08:00.8924366Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:00.8925425Z               "line": 30
2026-06-10T07:08:00.8926149Z             },
2026-06-10T07:08:00.8926812Z             {
2026-06-10T07:08:00.8927545Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:00.8928466Z               "line": 63
2026-06-10T07:08:00.8929271Z             },
2026-06-10T07:08:00.8929927Z             {
2026-06-10T07:08:00.8930656Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:00.8931586Z               "line": 76
2026-06-10T07:08:00.8932297Z             }
2026-06-10T07:08:00.8932951Z           ]
2026-06-10T07:08:00.8933590Z         },
2026-06-10T07:08:00.8934219Z         "int": {
2026-06-10T07:08:00.8934893Z           "complete": true,
2026-06-10T07:08:00.8935642Z           "evidence": [
2026-06-10T07:08:00.8936343Z             {
2026-06-10T07:08:00.8937082Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:00.8938024Z               "line": 14
2026-06-10T07:08:00.8938731Z             },
2026-06-10T07:08:00.8939456Z             {
2026-06-10T07:08:00.8940208Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:00.8941149Z               "line": 183
2026-06-10T07:08:00.8941878Z             }
2026-06-10T07:08:00.8942532Z           ]
2026-06-10T07:08:00.8943160Z         },
2026-06-10T07:08:00.8943791Z         "unit": {
2026-06-10T07:08:00.8944608Z           "complete": true,
2026-06-10T07:08:00.8945428Z           "evidence": [
2026-06-10T07:08:00.8946139Z             {
2026-06-10T07:08:00.8946889Z               "path": "crates/spt-store/src/history.rs",
2026-06-10T07:08:00.8948015Z               "line": 42
2026-06-10T07:08:00.8948738Z             },
2026-06-10T07:08:00.8949491Z             {
2026-06-10T07:08:00.8950235Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:00.8951170Z               "line": 254
2026-06-10T07:08:00.8951887Z             },
2026-06-10T07:08:00.8952696Z             {
2026-06-10T07:08:00.8953465Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8954409Z               "line": 438
2026-06-10T07:08:00.8955140Z             },
2026-06-10T07:08:00.8955807Z             {
2026-06-10T07:08:00.8956556Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8957496Z               "line": 449
2026-06-10T07:08:00.8958216Z             },
2026-06-10T07:08:00.8958865Z             {
2026-06-10T07:08:00.8959699Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8960632Z               "line": 581
2026-06-10T07:08:00.8961371Z             },
2026-06-10T07:08:00.8962021Z             {
2026-06-10T07:08:00.8962776Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8963715Z               "line": 593
2026-06-10T07:08:00.8964437Z             },
2026-06-10T07:08:00.8965399Z             {
2026-06-10T07:08:00.8966133Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:00.8967041Z               "line": 141
2026-06-10T07:08:00.8967756Z             },
2026-06-10T07:08:00.8968413Z             {
2026-06-10T07:08:00.8969216Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:00.8970130Z               "line": 185
2026-06-10T07:08:00.8970850Z             }
2026-06-10T07:08:00.8971489Z           ]
2026-06-10T07:08:00.8972121Z         }
2026-06-10T07:08:00.8972744Z       }
2026-06-10T07:08:00.8973374Z     },
2026-06-10T07:08:00.8973999Z     {
2026-06-10T07:08:00.8974619Z       "id": "REQ-API-3",
2026-06-10T07:08:00.8975515Z       "title": "commune/signoff are file-drops, not commands",
2026-06-10T07:08:00.8976617Z       "requiredStages": [
2026-06-10T07:08:00.8977350Z         "impl",
2026-06-10T07:08:00.8978006Z         "unit",
2026-06-10T07:08:00.8978659Z         "int"
2026-06-10T07:08:00.8979419Z       ],
2026-06-10T07:08:00.8980044Z       "stages": {
2026-06-10T07:08:00.8980704Z         "doc": {
2026-06-10T07:08:00.8981396Z           "complete": false,
2026-06-10T07:08:00.8982172Z           "evidence": []
2026-06-10T07:08:00.8982908Z         },
2026-06-10T07:08:00.8983538Z         "impl": {
2026-06-10T07:08:00.8984215Z           "complete": true,
2026-06-10T07:08:00.8984967Z           "evidence": [
2026-06-10T07:08:00.8985675Z             {
2026-06-10T07:08:00.8986405Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:00.8987339Z               "line": 27
2026-06-10T07:08:00.8988063Z             },
2026-06-10T07:08:00.8988705Z             {
2026-06-10T07:08:00.8989534Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.8990473Z               "line": 372
2026-06-10T07:08:00.8991211Z             }
2026-06-10T07:08:00.8991850Z           ]
2026-06-10T07:08:00.8992471Z         },
2026-06-10T07:08:00.8993094Z         "int": {
2026-06-10T07:08:00.8993773Z           "complete": true,
2026-06-10T07:08:00.8994518Z           "evidence": [
2026-06-10T07:08:00.8995328Z             {
2026-06-10T07:08:00.8996094Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:00.8997047Z               "line": 257
2026-06-10T07:08:00.8997765Z             }
2026-06-10T07:08:00.8998409Z           ]
2026-06-10T07:08:00.8999111Z         },
2026-06-10T07:08:00.8999745Z         "unit": {
2026-06-10T07:08:00.9000423Z           "complete": true,
2026-06-10T07:08:00.9001178Z           "evidence": [
2026-06-10T07:08:00.9001872Z             {
2026-06-10T07:08:00.9002597Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:00.9003511Z               "line": 242
2026-06-10T07:08:00.9004242Z             },
2026-06-10T07:08:00.9005063Z             {
2026-06-10T07:08:00.9005965Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:00.9006896Z               "line": 622
2026-06-10T07:08:00.9007602Z             }
2026-06-10T07:08:00.9008279Z           ]
2026-06-10T07:08:00.9009050Z         }
2026-06-10T07:08:00.9009762Z       }
2026-06-10T07:08:00.9010597Z     },
2026-06-10T07:08:00.9011293Z     {
2026-06-10T07:08:00.9012118Z       "id": "REQ-ARCH-1",
2026-06-10T07:08:00.9013123Z       "title": "Many small acyclically-layered crates",
2026-06-10T07:08:00.9014266Z       "requiredStages": [
2026-06-10T07:08:00.9015155Z         "impl"
2026-06-10T07:08:00.9015896Z       ],
2026-06-10T07:08:00.9016587Z       "stages": {
2026-06-10T07:08:00.9017388Z         "doc": {
2026-06-10T07:08:00.9018148Z           "complete": false,
2026-06-10T07:08:00.9019106Z           "evidence": []
2026-06-10T07:08:00.9019960Z         },
2026-06-10T07:08:00.9020647Z         "impl": {
2026-06-10T07:08:00.9021486Z           "complete": true,
2026-06-10T07:08:00.9022336Z           "evidence": [
2026-06-10T07:08:00.9023182Z             {
2026-06-10T07:08:00.9024041Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-10T07:08:00.9051035Z               "line": 16
2026-06-10T07:08:00.9051775Z             },
2026-06-10T07:08:00.9052409Z             {
2026-06-10T07:08:00.9053123Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-10T07:08:00.9054026Z               "line": 12
2026-06-10T07:08:00.9054726Z             },
2026-06-10T07:08:00.9055330Z             {
2026-06-10T07:08:00.9056035Z               "path": "crates/spt-store/src/lib.rs",
2026-06-10T07:08:00.9056920Z               "line": 12
2026-06-10T07:08:00.9057607Z             }
2026-06-10T07:08:00.9058221Z           ]
2026-06-10T07:08:00.9058827Z         },
2026-06-10T07:08:00.9059538Z         "int": {
2026-06-10T07:08:00.9060187Z           "complete": false,
2026-06-10T07:08:00.9060926Z           "evidence": []
2026-06-10T07:08:00.9061609Z         },
2026-06-10T07:08:00.9062214Z         "unit": {
2026-06-10T07:08:00.9062882Z           "complete": false,
2026-06-10T07:08:00.9063617Z           "evidence": []
2026-06-10T07:08:00.9064303Z         }
2026-06-10T07:08:00.9064923Z       }
2026-06-10T07:08:00.9065529Z     },
2026-06-10T07:08:00.9066120Z     {
2026-06-10T07:08:00.9066735Z       "id": "REQ-ARCH-2",
2026-06-10T07:08:00.9067689Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-10T07:08:00.9068805Z       "requiredStages": [
2026-06-10T07:08:00.9069626Z         "impl"
2026-06-10T07:08:00.9070256Z       ],
2026-06-10T07:08:00.9070856Z       "stages": {
2026-06-10T07:08:00.9071515Z         "doc": {
2026-06-10T07:08:00.9072169Z           "complete": false,
2026-06-10T07:08:00.9072924Z           "evidence": []
2026-06-10T07:08:00.9073619Z         },
2026-06-10T07:08:00.9074225Z         "impl": {
2026-06-10T07:08:00.9074940Z           "complete": true,
2026-06-10T07:08:00.9075673Z           "evidence": [
2026-06-10T07:08:00.9076370Z             {
2026-06-10T07:08:00.9077090Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-10T07:08:00.9078002Z               "line": 18
2026-06-10T07:08:00.9078698Z             }
2026-06-10T07:08:00.9079413Z           ]
2026-06-10T07:08:00.9080018Z         },
2026-06-10T07:08:00.9080613Z         "int": {
2026-06-10T07:08:00.9081270Z           "complete": false,
2026-06-10T07:08:00.9082032Z           "evidence": []
2026-06-10T07:08:00.9082725Z         },
2026-06-10T07:08:00.9083330Z         "unit": {
2026-06-10T07:08:00.9083988Z           "complete": false,
2026-06-10T07:08:00.9084737Z           "evidence": []
2026-06-10T07:08:00.9085428Z         }
2026-06-10T07:08:00.9086029Z       }
2026-06-10T07:08:00.9086620Z     },
2026-06-10T07:08:00.9087206Z     {
2026-06-10T07:08:00.9087817Z       "id": "REQ-ARCH-3",
2026-06-10T07:08:00.9088901Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-10T07:08:00.9090302Z       "requiredStages": [
2026-06-10T07:08:00.9091020Z         "impl",
2026-06-10T07:08:00.9091854Z         "unit"
2026-06-10T07:08:00.9092482Z       ],
2026-06-10T07:08:00.9093088Z       "stages": {
2026-06-10T07:08:00.9093739Z         "doc": {
2026-06-10T07:08:00.9094411Z           "complete": false,
2026-06-10T07:08:00.9095178Z           "evidence": []
2026-06-10T07:08:00.9095880Z         },
2026-06-10T07:08:00.9096507Z         "impl": {
2026-06-10T07:08:00.9097285Z           "complete": true,
2026-06-10T07:08:00.9098042Z           "evidence": [
2026-06-10T07:08:00.9098733Z             {
2026-06-10T07:08:00.9099570Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T07:08:00.9100490Z               "line": 34
2026-06-10T07:08:00.9101187Z             },
2026-06-10T07:08:00.9101822Z             {
2026-06-10T07:08:00.9102571Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T07:08:00.9103501Z               "line": 41
2026-06-10T07:08:00.9104200Z             }
2026-06-10T07:08:00.9104832Z           ]
2026-06-10T07:08:00.9105448Z         },
2026-06-10T07:08:00.9106072Z         "int": {
2026-06-10T07:08:00.9106745Z           "complete": false,
2026-06-10T07:08:00.9107497Z           "evidence": []
2026-06-10T07:08:00.9108193Z         },
2026-06-10T07:08:00.9108807Z         "unit": {
2026-06-10T07:08:00.9109567Z           "complete": true,
2026-06-10T07:08:00.9110307Z           "evidence": [
2026-06-10T07:08:00.9110984Z             {
2026-06-10T07:08:00.9111732Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T07:08:00.9112650Z               "line": 51
2026-06-10T07:08:00.9113336Z             },
2026-06-10T07:08:00.9113965Z             {
2026-06-10T07:08:00.9114698Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T07:08:00.9115621Z               "line": 71
2026-06-10T07:08:00.9116327Z             },
2026-06-10T07:08:00.9116957Z             {
2026-06-10T07:08:00.9117690Z               "path": "crates/spt-proto/src/version.rs",
2026-06-10T07:08:00.9118616Z               "line": 83
2026-06-10T07:08:00.9119387Z             }
2026-06-10T07:08:00.9120018Z           ]
2026-06-10T07:08:00.9120633Z         }
2026-06-10T07:08:00.9121239Z       }
2026-06-10T07:08:00.9121835Z     },
2026-06-10T07:08:00.9122422Z     {
2026-06-10T07:08:00.9123033Z       "id": "REQ-ARCH-4",
2026-06-10T07:08:00.9124015Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-10T07:08:00.9125443Z       "requiredStages": [
2026-06-10T07:08:00.9126215Z         "impl",
2026-06-10T07:08:00.9126872Z         "unit"
2026-06-10T07:08:00.9127502Z       ],
2026-06-10T07:08:00.9128116Z       "stages": {
2026-06-10T07:08:00.9128793Z         "doc": {
2026-06-10T07:08:00.9129566Z           "complete": false,
2026-06-10T07:08:00.9130337Z           "evidence": []
2026-06-10T07:08:00.9131045Z         },
2026-06-10T07:08:00.9131670Z         "impl": {
2026-06-10T07:08:00.9132343Z           "complete": true,
2026-06-10T07:08:00.9133091Z           "evidence": [
2026-06-10T07:08:00.9133784Z             {
2026-06-10T07:08:00.9134532Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9135467Z               "line": 82
2026-06-10T07:08:00.9136169Z             },
2026-06-10T07:08:00.9136803Z             {
2026-06-10T07:08:00.9137538Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9138469Z               "line": 96
2026-06-10T07:08:00.9139267Z             },
2026-06-10T07:08:00.9139911Z             {
2026-06-10T07:08:00.9140651Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9141571Z               "line": 116
2026-06-10T07:08:00.9142274Z             },
2026-06-10T07:08:00.9142908Z             {
2026-06-10T07:08:00.9143637Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9144549Z               "line": 131
2026-06-10T07:08:00.9145527Z             },
2026-06-10T07:08:00.9146185Z             {
2026-06-10T07:08:00.9146915Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9147831Z               "line": 181
2026-06-10T07:08:00.9148537Z             }
2026-06-10T07:08:00.9149593Z           ]
2026-06-10T07:08:00.9150223Z         },
2026-06-10T07:08:00.9150833Z         "int": {
2026-06-10T07:08:00.9151499Z           "complete": false,
2026-06-10T07:08:00.9152252Z           "evidence": []
2026-06-10T07:08:00.9152958Z         },
2026-06-10T07:08:00.9153577Z         "unit": {
2026-06-10T07:08:00.9154320Z           "complete": true,
2026-06-10T07:08:00.9155061Z           "evidence": [
2026-06-10T07:08:00.9155754Z             {
2026-06-10T07:08:00.9156472Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9157381Z               "line": 242
2026-06-10T07:08:00.9158086Z             },
2026-06-10T07:08:00.9158720Z             {
2026-06-10T07:08:00.9159532Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9160444Z               "line": 252
2026-06-10T07:08:00.9161152Z             },
2026-06-10T07:08:00.9161786Z             {
2026-06-10T07:08:00.9162516Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9163437Z               "line": 263
2026-06-10T07:08:00.9164142Z             },
2026-06-10T07:08:00.9164776Z             {
2026-06-10T07:08:00.9165641Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9166590Z               "line": 274
2026-06-10T07:08:00.9167300Z             },
2026-06-10T07:08:00.9167936Z             {
2026-06-10T07:08:00.9168679Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9169680Z               "line": 286
2026-06-10T07:08:00.9170394Z             },
2026-06-10T07:08:00.9171068Z             {
2026-06-10T07:08:00.9171788Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9172701Z               "line": 299
2026-06-10T07:08:00.9173396Z             },
2026-06-10T07:08:00.9174030Z             {
2026-06-10T07:08:00.9174774Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9175700Z               "line": 310
2026-06-10T07:08:00.9176405Z             },
2026-06-10T07:08:00.9177035Z             {
2026-06-10T07:08:00.9177751Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9178667Z               "line": 327
2026-06-10T07:08:00.9179506Z             },
2026-06-10T07:08:00.9180135Z             {
2026-06-10T07:08:00.9180850Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:00.9181766Z               "line": 358
2026-06-10T07:08:00.9182476Z             }
2026-06-10T07:08:00.9183099Z           ]
2026-06-10T07:08:00.9183703Z         }
2026-06-10T07:08:00.9184304Z       }
2026-06-10T07:08:00.9184891Z     },
2026-06-10T07:08:00.9185478Z     {
2026-06-10T07:08:00.9186100Z       "id": "REQ-CLI-1",
2026-06-10T07:08:00.9190114Z       "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-10T07:08:00.9194235Z       "requiredStages": [
2026-06-10T07:08:00.9194949Z         "impl",
2026-06-10T07:08:00.9195593Z         "unit"
2026-06-10T07:08:00.9196228Z       ],
2026-06-10T07:08:00.9196839Z       "stages": {
2026-06-10T07:08:00.9197483Z         "doc": {
2026-06-10T07:08:00.9198150Z           "complete": false,
2026-06-10T07:08:00.9198901Z           "evidence": []
2026-06-10T07:08:00.9199674Z         },
2026-06-10T07:08:00.9200283Z         "impl": {
2026-06-10T07:08:00.9200936Z           "complete": true,
2026-06-10T07:08:00.9201656Z           "evidence": [
2026-06-10T07:08:00.9202347Z             {
2026-06-10T07:08:00.9203048Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9203915Z               "line": 193
2026-06-10T07:08:00.9204613Z             },
2026-06-10T07:08:00.9205242Z             {
2026-06-10T07:08:00.9205925Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9206913Z               "line": 799
2026-06-10T07:08:00.9207624Z             },
2026-06-10T07:08:00.9208258Z             {
2026-06-10T07:08:00.9209039Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9209919Z               "line": 1105
2026-06-10T07:08:00.9210619Z             },
2026-06-10T07:08:00.9211249Z             {
2026-06-10T07:08:00.9212032Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9212897Z               "line": 2228
2026-06-10T07:08:00.9213603Z             }
2026-06-10T07:08:00.9214223Z           ]
2026-06-10T07:08:00.9214827Z         },
2026-06-10T07:08:00.9215440Z         "int": {
2026-06-10T07:08:00.9216098Z           "complete": false,
2026-06-10T07:08:00.9216853Z           "evidence": []
2026-06-10T07:08:00.9217544Z         },
2026-06-10T07:08:00.9218155Z         "unit": {
2026-06-10T07:08:00.9218814Z           "complete": true,
2026-06-10T07:08:00.9219638Z           "evidence": [
2026-06-10T07:08:00.9220313Z             {
2026-06-10T07:08:00.9221013Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9221870Z               "line": 5352
2026-06-10T07:08:00.9222563Z             }
2026-06-10T07:08:00.9223180Z           ]
2026-06-10T07:08:00.9223791Z         }
2026-06-10T07:08:00.9224382Z       }
2026-06-10T07:08:00.9225200Z     },
2026-06-10T07:08:00.9225800Z     {
2026-06-10T07:08:00.9226411Z       "id": "REQ-CLI-2",
2026-06-10T07:08:00.9229215Z       "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-10T07:08:00.9232111Z       "requiredStages": [
2026-06-10T07:08:00.9232833Z         "impl",
2026-06-10T07:08:00.9233486Z         "unit"
2026-06-10T07:08:00.9234123Z       ],
2026-06-10T07:08:00.9234757Z       "stages": {
2026-06-10T07:08:00.9235430Z         "doc": {
2026-06-10T07:08:00.9236100Z           "complete": false,
2026-06-10T07:08:00.9236860Z           "evidence": []
2026-06-10T07:08:00.9237576Z         },
2026-06-10T07:08:00.9238206Z         "impl": {
2026-06-10T07:08:00.9238877Z           "complete": true,
2026-06-10T07:08:00.9239695Z           "evidence": [
2026-06-10T07:08:00.9240391Z             {
2026-06-10T07:08:00.9241155Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9242099Z               "line": 345
2026-06-10T07:08:00.9242815Z             },
2026-06-10T07:08:00.9243450Z             {
2026-06-10T07:08:00.9244192Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-10T07:08:00.9245122Z               "line": 78
2026-06-10T07:08:00.9245841Z             },
2026-06-10T07:08:00.9246470Z             {
2026-06-10T07:08:00.9247206Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:00.9248136Z               "line": 239
2026-06-10T07:08:00.9248829Z             },
2026-06-10T07:08:00.9249560Z             {
2026-06-10T07:08:00.9250246Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9251128Z               "line": 337
2026-06-10T07:08:00.9251833Z             },
2026-06-10T07:08:00.9252465Z             {
2026-06-10T07:08:00.9253160Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9254033Z               "line": 842
2026-06-10T07:08:00.9254742Z             },
2026-06-10T07:08:00.9255391Z             {
2026-06-10T07:08:00.9256082Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9256954Z               "line": 1296
2026-06-10T07:08:00.9257685Z             },
2026-06-10T07:08:00.9258310Z             {
2026-06-10T07:08:00.9259169Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9260064Z               "line": 1375
2026-06-10T07:08:00.9260767Z             },
2026-06-10T07:08:00.9261397Z             {
2026-06-10T07:08:00.9262069Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9262929Z               "line": 1436
2026-06-10T07:08:00.9263630Z             }
2026-06-10T07:08:00.9264445Z           ]
2026-06-10T07:08:00.9265056Z         },
2026-06-10T07:08:00.9265674Z         "int": {
2026-06-10T07:08:00.9266336Z           "complete": false,
2026-06-10T07:08:00.9267096Z           "evidence": []
2026-06-10T07:08:00.9267790Z         },
2026-06-10T07:08:00.9268404Z         "unit": {
2026-06-10T07:08:00.9269143Z           "complete": true,
2026-06-10T07:08:00.9270006Z           "evidence": [
2026-06-10T07:08:00.9270699Z             {
2026-06-10T07:08:00.9271441Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:00.9272362Z               "line": 309
2026-06-10T07:08:00.9273052Z             },
2026-06-10T07:08:00.9273679Z             {
2026-06-10T07:08:00.9274356Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9275210Z               "line": 5490
2026-06-10T07:08:00.9275910Z             }
2026-06-10T07:08:00.9276530Z           ]
2026-06-10T07:08:00.9277117Z         }
2026-06-10T07:08:00.9277713Z       }
2026-06-10T07:08:00.9278317Z     },
2026-06-10T07:08:00.9278896Z     {
2026-06-10T07:08:00.9279646Z       "id": "REQ-CLI-3",
2026-06-10T07:08:00.9282460Z       "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-10T07:08:00.9285451Z       "requiredStages": [
2026-06-10T07:08:00.9286171Z         "impl",
2026-06-10T07:08:00.9286818Z         "unit"
2026-06-10T07:08:00.9287447Z       ],
2026-06-10T07:08:00.9288115Z       "stages": {
2026-06-10T07:08:00.9288758Z         "doc": {
2026-06-10T07:08:00.9289524Z           "complete": false,
2026-06-10T07:08:00.9290272Z           "evidence": []
2026-06-10T07:08:00.9290973Z         },
2026-06-10T07:08:00.9291596Z         "impl": {
2026-06-10T07:08:00.9292519Z           "complete": true,
2026-06-10T07:08:00.9293258Z           "evidence": [
2026-06-10T07:08:00.9293955Z             {
2026-06-10T07:08:00.9294643Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9295505Z               "line": 793
2026-06-10T07:08:00.9296198Z             }
2026-06-10T07:08:00.9296813Z           ]
2026-06-10T07:08:00.9297440Z         },
2026-06-10T07:08:00.9298045Z         "int": {
2026-06-10T07:08:00.9298728Z           "complete": false,
2026-06-10T07:08:00.9299602Z           "evidence": []
2026-06-10T07:08:00.9300297Z         },
2026-06-10T07:08:00.9300912Z         "unit": {
2026-06-10T07:08:00.9301571Z           "complete": true,
2026-06-10T07:08:00.9310862Z           "evidence": [
2026-06-10T07:08:00.9311584Z             {
2026-06-10T07:08:00.9312279Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9313153Z               "line": 5317
2026-06-10T07:08:00.9313878Z             }
2026-06-10T07:08:00.9314508Z           ]
2026-06-10T07:08:00.9315119Z         }
2026-06-10T07:08:00.9315715Z       }
2026-06-10T07:08:00.9316315Z     },
2026-06-10T07:08:00.9316926Z     {
2026-06-10T07:08:00.9317551Z       "id": "REQ-CONSENT-1",
2026-06-10T07:08:00.9321118Z       "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-10T07:08:00.9324710Z       "requiredStages": [
2026-06-10T07:08:00.9325430Z         "impl",
2026-06-10T07:08:00.9326085Z         "unit"
2026-06-10T07:08:00.9326719Z       ],
2026-06-10T07:08:00.9327362Z       "stages": {
2026-06-10T07:08:00.9328006Z         "doc": {
2026-06-10T07:08:00.9328673Z           "complete": false,
2026-06-10T07:08:00.9329517Z           "evidence": []
2026-06-10T07:08:00.9330231Z         },
2026-06-10T07:08:00.9330847Z         "impl": {
2026-06-10T07:08:00.9331512Z           "complete": true,
2026-06-10T07:08:00.9332245Z           "evidence": [
2026-06-10T07:08:00.9333127Z             {
2026-06-10T07:08:00.9333856Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9334759Z               "line": 27
2026-06-10T07:08:00.9335661Z             },
2026-06-10T07:08:00.9336300Z             {
2026-06-10T07:08:00.9337045Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9338089Z               "line": 75
2026-06-10T07:08:00.9338782Z             },
2026-06-10T07:08:00.9339501Z             {
2026-06-10T07:08:00.9340224Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9341107Z               "line": 98
2026-06-10T07:08:00.9341809Z             },
2026-06-10T07:08:00.9342424Z             {
2026-06-10T07:08:00.9343139Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T07:08:00.9344040Z               "line": 82
2026-06-10T07:08:00.9344723Z             },
2026-06-10T07:08:00.9345525Z             {
2026-06-10T07:08:00.9346273Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T07:08:00.9347191Z               "line": 109
2026-06-10T07:08:00.9347896Z             },
2026-06-10T07:08:00.9348526Z             {
2026-06-10T07:08:00.9349356Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T07:08:00.9350260Z               "line": 127
2026-06-10T07:08:00.9350966Z             },
2026-06-10T07:08:00.9351601Z             {
2026-06-10T07:08:00.9352322Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T07:08:00.9353223Z               "line": 142
2026-06-10T07:08:00.9353933Z             },
2026-06-10T07:08:00.9354571Z             {
2026-06-10T07:08:00.9355260Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9356118Z               "line": 5053
2026-06-10T07:08:00.9356838Z             }
2026-06-10T07:08:00.9357453Z           ]
2026-06-10T07:08:00.9358075Z         },
2026-06-10T07:08:00.9358704Z         "int": {
2026-06-10T07:08:00.9359476Z           "complete": false,
2026-06-10T07:08:00.9360231Z           "evidence": []
2026-06-10T07:08:00.9360940Z         },
2026-06-10T07:08:00.9361588Z         "unit": {
2026-06-10T07:08:00.9362264Z           "complete": true,
2026-06-10T07:08:00.9363000Z           "evidence": [
2026-06-10T07:08:00.9363687Z             {
2026-06-10T07:08:00.9364408Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9365310Z               "line": 334
2026-06-10T07:08:00.9366011Z             },
2026-06-10T07:08:00.9366636Z             {
2026-06-10T07:08:00.9367350Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9368251Z               "line": 380
2026-06-10T07:08:00.9368935Z             },
2026-06-10T07:08:00.9369641Z             {
2026-06-10T07:08:00.9370351Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9371252Z               "line": 391
2026-06-10T07:08:00.9371942Z             },
2026-06-10T07:08:00.9372577Z             {
2026-06-10T07:08:00.9373286Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T07:08:00.9374189Z               "line": 165
2026-06-10T07:08:00.9374886Z             },
2026-06-10T07:08:00.9375507Z             {
2026-06-10T07:08:00.9376220Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T07:08:00.9377119Z               "line": 184
2026-06-10T07:08:00.9377816Z             },
2026-06-10T07:08:00.9378451Z             {
2026-06-10T07:08:00.9379247Z               "path": "crates/spt-store/src/grants.rs",
2026-06-10T07:08:00.9380148Z               "line": 204
2026-06-10T07:08:00.9380849Z             },
2026-06-10T07:08:00.9381487Z             {
2026-06-10T07:08:00.9382169Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9383027Z               "line": 5670
2026-06-10T07:08:00.9383723Z             }
2026-06-10T07:08:00.9384350Z           ]
2026-06-10T07:08:00.9384941Z         }
2026-06-10T07:08:00.9385533Z       }
2026-06-10T07:08:00.9386120Z     },
2026-06-10T07:08:00.9386723Z     {
2026-06-10T07:08:00.9387341Z       "id": "REQ-CONSENT-2",
2026-06-10T07:08:00.9390685Z       "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-10T07:08:00.9394074Z       "requiredStages": [
2026-06-10T07:08:00.9394795Z         "impl",
2026-06-10T07:08:00.9395425Z         "unit"
2026-06-10T07:08:00.9396051Z       ],
2026-06-10T07:08:00.9396666Z       "stages": {
2026-06-10T07:08:00.9397307Z         "doc": {
2026-06-10T07:08:00.9397973Z           "complete": false,
2026-06-10T07:08:00.9398716Z           "evidence": []
2026-06-10T07:08:00.9399566Z         },
2026-06-10T07:08:00.9400172Z         "impl": {
2026-06-10T07:08:00.9400835Z           "complete": true,
2026-06-10T07:08:00.9401588Z           "evidence": [
2026-06-10T07:08:00.9402269Z             {
2026-06-10T07:08:00.9403008Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9403933Z               "line": 140
2026-06-10T07:08:00.9404639Z             },
2026-06-10T07:08:00.9405269Z             {
2026-06-10T07:08:00.9406000Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9406916Z               "line": 165
2026-06-10T07:08:00.9407602Z             },
2026-06-10T07:08:00.9408247Z             {
2026-06-10T07:08:00.9409052Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9409967Z               "line": 199
2026-06-10T07:08:00.9410655Z             },
2026-06-10T07:08:00.9411275Z             {
2026-06-10T07:08:00.9412005Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9412906Z               "line": 241
2026-06-10T07:08:00.9413596Z             },
2026-06-10T07:08:00.9414221Z             {
2026-06-10T07:08:00.9414947Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9415839Z               "line": 269
2026-06-10T07:08:00.9416541Z             },
2026-06-10T07:08:00.9417171Z             {
2026-06-10T07:08:00.9417890Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9418797Z               "line": 300
2026-06-10T07:08:00.9419603Z             },
2026-06-10T07:08:00.9420223Z             {
2026-06-10T07:08:00.9420913Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9421770Z               "line": 4918
2026-06-10T07:08:00.9422475Z             },
2026-06-10T07:08:00.9423100Z             {
2026-06-10T07:08:00.9423785Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9424624Z               "line": 4976
2026-06-10T07:08:00.9425326Z             }
2026-06-10T07:08:00.9425939Z           ]
2026-06-10T07:08:00.9426553Z         },
2026-06-10T07:08:00.9427172Z         "int": {
2026-06-10T07:08:00.9427834Z           "complete": false,
2026-06-10T07:08:00.9428579Z           "evidence": []
2026-06-10T07:08:00.9429348Z         },
2026-06-10T07:08:00.9429949Z         "unit": {
2026-06-10T07:08:00.9430613Z           "complete": true,
2026-06-10T07:08:00.9431336Z           "evidence": [
2026-06-10T07:08:00.9432020Z             {
2026-06-10T07:08:00.9432743Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9433669Z               "line": 419
2026-06-10T07:08:00.9434364Z             },
2026-06-10T07:08:00.9435061Z             {
2026-06-10T07:08:00.9435851Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9436775Z               "line": 436
2026-06-10T07:08:00.9437465Z             },
2026-06-10T07:08:00.9438095Z             {
2026-06-10T07:08:00.9438828Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9439841Z               "line": 472
2026-06-10T07:08:00.9440566Z             },
2026-06-10T07:08:00.9441192Z             {
2026-06-10T07:08:00.9441915Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:00.9442818Z               "line": 516
2026-06-10T07:08:00.9443524Z             },
2026-06-10T07:08:00.9444272Z             {
2026-06-10T07:08:00.9445191Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9446069Z               "line": 6565
2026-06-10T07:08:00.9446769Z             },
2026-06-10T07:08:00.9447391Z             {
2026-06-10T07:08:00.9448077Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9448927Z               "line": 6647
2026-06-10T07:08:00.9449871Z             }
2026-06-10T07:08:00.9450506Z           ]
2026-06-10T07:08:00.9451113Z         }
2026-06-10T07:08:00.9451708Z       }
2026-06-10T07:08:00.9452304Z     },
2026-06-10T07:08:00.9452896Z     {
2026-06-10T07:08:00.9453516Z       "id": "REQ-CONV-1",
2026-06-10T07:08:00.9458547Z       "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-10T07:08:00.9463206Z       "requiredStages": [
2026-06-10T07:08:00.9463920Z         "impl",
2026-06-10T07:08:00.9464545Z         "unit"
2026-06-10T07:08:00.9465193Z       ],
2026-06-10T07:08:00.9465813Z       "stages": {
2026-06-10T07:08:00.9466465Z         "doc": {
2026-06-10T07:08:00.9467123Z           "complete": false,
2026-06-10T07:08:00.9467870Z           "evidence": []
2026-06-10T07:08:00.9468558Z         },
2026-06-10T07:08:00.9469245Z         "impl": {
2026-06-10T07:08:00.9469918Z           "complete": true,
2026-06-10T07:08:00.9470643Z           "evidence": [
2026-06-10T07:08:00.9471327Z             {
2026-06-10T07:08:00.9472060Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9472980Z               "line": 696
2026-06-10T07:08:00.9473685Z             },
2026-06-10T07:08:00.9474312Z             {
2026-06-10T07:08:00.9475037Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:00.9475943Z               "line": 94
2026-06-10T07:08:00.9476648Z             },
2026-06-10T07:08:00.9477277Z             {
2026-06-10T07:08:00.9478002Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:00.9478926Z               "line": 345
2026-06-10T07:08:00.9479687Z             },
2026-06-10T07:08:00.9480302Z             {
2026-06-10T07:08:00.9481022Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:00.9481925Z               "line": 387
2026-06-10T07:08:00.9482606Z             },
2026-06-10T07:08:00.9483231Z             {
2026-06-10T07:08:00.9483960Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:00.9484858Z               "line": 472
2026-06-10T07:08:00.9485544Z             },
2026-06-10T07:08:00.9486164Z             {
2026-06-10T07:08:00.9486900Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9487812Z               "line": 629
2026-06-10T07:08:00.9488515Z             },
2026-06-10T07:08:00.9489244Z             {
2026-06-10T07:08:00.9489980Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9490890Z               "line": 655
2026-06-10T07:08:00.9491596Z             },
2026-06-10T07:08:00.9492215Z             {
2026-06-10T07:08:00.9492961Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:00.9493876Z               "line": 369
2026-06-10T07:08:00.9494579Z             },
2026-06-10T07:08:00.9495203Z             {
2026-06-10T07:08:00.9495938Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T07:08:00.9496854Z               "line": 19
2026-06-10T07:08:00.9497551Z             }
2026-06-10T07:08:00.9498174Z           ]
2026-06-10T07:08:00.9498780Z         },
2026-06-10T07:08:00.9499457Z         "int": {
2026-06-10T07:08:00.9500107Z           "complete": false,
2026-06-10T07:08:00.9500849Z           "evidence": []
2026-06-10T07:08:00.9501671Z         },
2026-06-10T07:08:00.9502281Z         "unit": {
2026-06-10T07:08:00.9502932Z           "complete": true,
2026-06-10T07:08:00.9503669Z           "evidence": [
2026-06-10T07:08:00.9504341Z             {
2026-06-10T07:08:00.9505075Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9505987Z               "line": 990
2026-06-10T07:08:00.9506818Z             },
2026-06-10T07:08:00.9507448Z             {
2026-06-10T07:08:00.9508185Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T07:08:00.9509181Z               "line": 108
2026-06-10T07:08:00.9509882Z             },
2026-06-10T07:08:00.9510510Z             {
2026-06-10T07:08:00.9511238Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T07:08:00.9512148Z               "line": 134
2026-06-10T07:08:00.9512846Z             },
2026-06-10T07:08:00.9513468Z             {
2026-06-10T07:08:00.9514192Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-10T07:08:00.9515103Z               "line": 144
2026-06-10T07:08:00.9515808Z             }
2026-06-10T07:08:00.9516425Z           ]
2026-06-10T07:08:00.9517030Z         }
2026-06-10T07:08:00.9517626Z       }
2026-06-10T07:08:00.9518212Z     },
2026-06-10T07:08:00.9518797Z     {
2026-06-10T07:08:00.9519503Z       "id": "REQ-CONV-2",
2026-06-10T07:08:00.9523176Z       "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-10T07:08:00.9526793Z       "requiredStages": [
2026-06-10T07:08:00.9527513Z         "impl",
2026-06-10T07:08:00.9528147Z         "unit"
2026-06-10T07:08:00.9528762Z       ],
2026-06-10T07:08:00.9529433Z       "stages": {
2026-06-10T07:08:00.9530072Z         "doc": {
2026-06-10T07:08:00.9530716Z           "complete": false,
2026-06-10T07:08:00.9531461Z           "evidence": []
2026-06-10T07:08:00.9532154Z         },
2026-06-10T07:08:00.9532759Z         "impl": {
2026-06-10T07:08:00.9533421Z           "complete": true,
2026-06-10T07:08:00.9534146Z           "evidence": [
2026-06-10T07:08:00.9534829Z             {
2026-06-10T07:08:00.9535584Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9536499Z               "line": 316
2026-06-10T07:08:00.9537208Z             },
2026-06-10T07:08:00.9537840Z             {
2026-06-10T07:08:00.9538579Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9539632Z               "line": 333
2026-06-10T07:08:00.9540332Z             },
2026-06-10T07:08:00.9540962Z             {
2026-06-10T07:08:00.9541706Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:00.9542642Z               "line": 761
2026-06-10T07:08:00.9543324Z             },
2026-06-10T07:08:00.9543940Z             {
2026-06-10T07:08:00.9544702Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:00.9545628Z               "line": 772
2026-06-10T07:08:00.9546319Z             },
2026-06-10T07:08:00.9546944Z             {
2026-06-10T07:08:00.9547662Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:00.9548562Z               "line": 334
2026-06-10T07:08:00.9549340Z             },
2026-06-10T07:08:00.9549955Z             {
2026-06-10T07:08:00.9550635Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9551473Z               "line": 2183
2026-06-10T07:08:00.9552171Z             },
2026-06-10T07:08:00.9552793Z             {
2026-06-10T07:08:00.9553464Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9554303Z               "line": 2199
2026-06-10T07:08:00.9554994Z             },
2026-06-10T07:08:00.9555604Z             {
2026-06-10T07:08:00.9556278Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9557118Z               "line": 2256
2026-06-10T07:08:00.9557915Z             }
2026-06-10T07:08:00.9558530Z           ]
2026-06-10T07:08:00.9559232Z         },
2026-06-10T07:08:00.9559837Z         "int": {
2026-06-10T07:08:00.9560491Z           "complete": false,
2026-06-10T07:08:00.9561229Z           "evidence": []
2026-06-10T07:08:00.9561916Z         },
2026-06-10T07:08:00.9562531Z         "unit": {
2026-06-10T07:08:00.9563287Z           "complete": true,
2026-06-10T07:08:00.9564029Z           "evidence": [
2026-06-10T07:08:00.9564707Z             {
2026-06-10T07:08:00.9565445Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9566359Z               "line": 1071
2026-06-10T07:08:00.9567059Z             }
2026-06-10T07:08:00.9567678Z           ]
2026-06-10T07:08:00.9568298Z         }
2026-06-10T07:08:00.9568903Z       }
2026-06-10T07:08:00.9569568Z     },
2026-06-10T07:08:00.9570165Z     {
2026-06-10T07:08:00.9621791Z       "id": "REQ-DAEMON-1",
2026-06-10T07:08:00.9623026Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-10T07:08:00.9624215Z       "requiredStages": [
2026-06-10T07:08:00.9624937Z         "impl",
2026-06-10T07:08:00.9625572Z         "unit",
2026-06-10T07:08:00.9626207Z         "int"
2026-06-10T07:08:00.9626848Z       ],
2026-06-10T07:08:00.9627457Z       "stages": {
2026-06-10T07:08:00.9628087Z         "doc": {
2026-06-10T07:08:00.9628759Z           "complete": false,
2026-06-10T07:08:00.9629606Z           "evidence": []
2026-06-10T07:08:00.9630296Z         },
2026-06-10T07:08:00.9630896Z         "impl": {
2026-06-10T07:08:00.9631540Z           "complete": true,
2026-06-10T07:08:00.9632253Z           "evidence": [
2026-06-10T07:08:00.9632920Z             {
2026-06-10T07:08:00.9633634Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:00.9634531Z               "line": 12
2026-06-10T07:08:00.9635502Z             },
2026-06-10T07:08:00.9636127Z             {
2026-06-10T07:08:00.9636851Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9637765Z               "line": 16
2026-06-10T07:08:00.9638441Z             },
2026-06-10T07:08:00.9639175Z             {
2026-06-10T07:08:00.9639872Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-10T07:08:00.9640740Z               "line": 15
2026-06-10T07:08:00.9641417Z             },
2026-06-10T07:08:00.9642042Z             {
2026-06-10T07:08:00.9642728Z               "path": "crates/spt/src/api/live.rs",
2026-06-10T07:08:00.9643588Z               "line": 13
2026-06-10T07:08:00.9644261Z             }
2026-06-10T07:08:00.9644909Z           ]
2026-06-10T07:08:00.9645653Z         },
2026-06-10T07:08:00.9646243Z         "int": {
2026-06-10T07:08:00.9646902Z           "complete": true,
2026-06-10T07:08:00.9647651Z           "evidence": [
2026-06-10T07:08:00.9648325Z             {
2026-06-10T07:08:00.9649221Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-10T07:08:00.9650161Z               "line": 32
2026-06-10T07:08:00.9650840Z             }
2026-06-10T07:08:00.9651468Z           ]
2026-06-10T07:08:00.9652069Z         },
2026-06-10T07:08:00.9652675Z         "unit": {
2026-06-10T07:08:00.9653331Z           "complete": true,
2026-06-10T07:08:00.9654035Z           "evidence": [
2026-06-10T07:08:00.9654706Z             {
2026-06-10T07:08:00.9655407Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:00.9656299Z               "line": 285
2026-06-10T07:08:00.9656981Z             },
2026-06-10T07:08:00.9657595Z             {
2026-06-10T07:08:00.9658314Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:00.9659289Z               "line": 293
2026-06-10T07:08:00.9659976Z             },
2026-06-10T07:08:00.9660581Z             {
2026-06-10T07:08:00.9661291Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:00.9662180Z               "line": 309
2026-06-10T07:08:00.9662862Z             },
2026-06-10T07:08:00.9663482Z             {
2026-06-10T07:08:00.9664189Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:00.9665371Z               "line": 317
2026-06-10T07:08:00.9666058Z             },
2026-06-10T07:08:00.9666676Z             {
2026-06-10T07:08:00.9667398Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9668308Z               "line": 565
2026-06-10T07:08:00.9669311Z             },
2026-06-10T07:08:00.9669935Z             {
2026-06-10T07:08:00.9670784Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9671699Z               "line": 635
2026-06-10T07:08:00.9672415Z             },
2026-06-10T07:08:00.9673036Z             {
2026-06-10T07:08:00.9673742Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-10T07:08:00.9674620Z               "line": 104
2026-06-10T07:08:00.9675311Z             },
2026-06-10T07:08:00.9675960Z             {
2026-06-10T07:08:00.9676658Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-10T07:08:00.9677537Z               "line": 129
2026-06-10T07:08:00.9678224Z             }
2026-06-10T07:08:00.9678853Z           ]
2026-06-10T07:08:00.9679534Z         }
2026-06-10T07:08:00.9680127Z       }
2026-06-10T07:08:00.9680695Z     },
2026-06-10T07:08:00.9681277Z     {
2026-06-10T07:08:00.9681888Z       "id": "REQ-DAEMON-2",
2026-06-10T07:08:00.9682752Z       "title": "Broker/brain split for seamless self-update",
2026-06-10T07:08:00.9683730Z       "requiredStages": [
2026-06-10T07:08:00.9684436Z         "impl",
2026-06-10T07:08:00.9685068Z         "unit",
2026-06-10T07:08:00.9685697Z         "int"
2026-06-10T07:08:00.9686307Z       ],
2026-06-10T07:08:00.9686903Z       "stages": {
2026-06-10T07:08:00.9687518Z         "doc": {
2026-06-10T07:08:00.9688169Z           "complete": false,
2026-06-10T07:08:00.9688904Z           "evidence": []
2026-06-10T07:08:00.9689676Z         },
2026-06-10T07:08:00.9690283Z         "impl": {
2026-06-10T07:08:00.9690931Z           "complete": true,
2026-06-10T07:08:00.9691704Z           "evidence": [
2026-06-10T07:08:00.9692378Z             {
2026-06-10T07:08:00.9693099Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:00.9693971Z               "line": 23
2026-06-10T07:08:00.9694643Z             },
2026-06-10T07:08:00.9695259Z             {
2026-06-10T07:08:00.9695980Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:00.9696848Z               "line": 584
2026-06-10T07:08:00.9697539Z             },
2026-06-10T07:08:00.9698150Z             {
2026-06-10T07:08:00.9698853Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:00.9699821Z               "line": 637
2026-06-10T07:08:00.9700517Z             },
2026-06-10T07:08:00.9701139Z             {
2026-06-10T07:08:00.9701849Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:00.9702722Z               "line": 819
2026-06-10T07:08:00.9703459Z             },
2026-06-10T07:08:00.9704110Z             {
2026-06-10T07:08:00.9704826Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:00.9705703Z               "line": 32
2026-06-10T07:08:00.9706386Z             },
2026-06-10T07:08:00.9707001Z             {
2026-06-10T07:08:00.9707708Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:00.9708580Z               "line": 255
2026-06-10T07:08:00.9709357Z             },
2026-06-10T07:08:00.9710006Z             {
2026-06-10T07:08:00.9710724Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:00.9711609Z               "line": 661
2026-06-10T07:08:00.9712300Z             },
2026-06-10T07:08:00.9712915Z             {
2026-06-10T07:08:00.9713625Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:00.9714509Z               "line": 927
2026-06-10T07:08:00.9715191Z             },
2026-06-10T07:08:00.9715801Z             {
2026-06-10T07:08:00.9716501Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T07:08:00.9717386Z               "line": 11
2026-06-10T07:08:00.9717677Z             },
2026-06-10T07:08:00.9717964Z             {
2026-06-10T07:08:00.9718607Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9718903Z               "line": 146
2026-06-10T07:08:00.9719289Z             },
2026-06-10T07:08:00.9719578Z             {
2026-06-10T07:08:00.9719965Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9720265Z               "line": 274
2026-06-10T07:08:00.9720622Z             },
2026-06-10T07:08:00.9720899Z             {
2026-06-10T07:08:00.9721266Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:00.9721557Z               "line": 13
2026-06-10T07:08:00.9721832Z             },
2026-06-10T07:08:00.9722116Z             {
2026-06-10T07:08:00.9722493Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9722780Z               "line": 27
2026-06-10T07:08:00.9723065Z             },
2026-06-10T07:08:00.9723336Z             {
2026-06-10T07:08:00.9723724Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9724024Z               "line": 109
2026-06-10T07:08:00.9724315Z             },
2026-06-10T07:08:00.9724594Z             {
2026-06-10T07:08:00.9724974Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9725269Z               "line": 447
2026-06-10T07:08:00.9725536Z             },
2026-06-10T07:08:00.9725822Z             {
2026-06-10T07:08:00.9726213Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9726509Z               "line": 614
2026-06-10T07:08:00.9726785Z             },
2026-06-10T07:08:00.9727071Z             {
2026-06-10T07:08:00.9727459Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9727745Z               "line": 715
2026-06-10T07:08:00.9728036Z             },
2026-06-10T07:08:00.9728318Z             {
2026-06-10T07:08:00.9728694Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9729071Z               "line": 764
2026-06-10T07:08:00.9729343Z             },
2026-06-10T07:08:00.9729624Z             {
2026-06-10T07:08:00.9730009Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9730305Z               "line": 812
2026-06-10T07:08:00.9730596Z             },
2026-06-10T07:08:00.9730877Z             {
2026-06-10T07:08:00.9731277Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T07:08:00.9731569Z               "line": 10
2026-06-10T07:08:00.9731868Z             }
2026-06-10T07:08:00.9732150Z           ]
2026-06-10T07:08:00.9732435Z         },
2026-06-10T07:08:00.9732724Z         "int": {
2026-06-10T07:08:00.9733029Z           "complete": true,
2026-06-10T07:08:00.9733330Z           "evidence": [
2026-06-10T07:08:00.9733611Z             {
2026-06-10T07:08:00.9734002Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-10T07:08:00.9734298Z               "line": 17
2026-06-10T07:08:00.9734585Z             },
2026-06-10T07:08:00.9734870Z             {
2026-06-10T07:08:00.9735278Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-10T07:08:00.9735586Z               "line": 33
2026-06-10T07:08:00.9735939Z             },
2026-06-10T07:08:00.9736231Z             {
2026-06-10T07:08:00.9736625Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-10T07:08:00.9736917Z               "line": 19
2026-06-10T07:08:00.9737213Z             },
2026-06-10T07:08:00.9737490Z             {
2026-06-10T07:08:00.9737906Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T07:08:00.9738201Z               "line": 71
2026-06-10T07:08:00.9738487Z             },
2026-06-10T07:08:00.9738779Z             {
2026-06-10T07:08:00.9739264Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T07:08:00.9739569Z               "line": 91
2026-06-10T07:08:00.9739869Z             },
2026-06-10T07:08:00.9740150Z             {
2026-06-10T07:08:00.9740564Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T07:08:00.9740860Z               "line": 167
2026-06-10T07:08:00.9741147Z             },
2026-06-10T07:08:00.9741423Z             {
2026-06-10T07:08:00.9741928Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T07:08:00.9742229Z               "line": 209
2026-06-10T07:08:00.9742514Z             },
2026-06-10T07:08:00.9742800Z             {
2026-06-10T07:08:00.9743212Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-10T07:08:00.9743604Z               "line": 128
2026-06-10T07:08:00.9743895Z             }
2026-06-10T07:08:00.9744186Z           ]
2026-06-10T07:08:00.9744466Z         },
2026-06-10T07:08:00.9744757Z         "unit": {
2026-06-10T07:08:00.9745062Z           "complete": true,
2026-06-10T07:08:00.9745363Z           "evidence": [
2026-06-10T07:08:00.9745648Z             {
2026-06-10T07:08:00.9746017Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T07:08:00.9746317Z               "line": 62
2026-06-10T07:08:00.9746595Z             },
2026-06-10T07:08:00.9746886Z             {
2026-06-10T07:08:00.9747262Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T07:08:00.9747572Z               "line": 76
2026-06-10T07:08:00.9747862Z             },
2026-06-10T07:08:00.9748144Z             {
2026-06-10T07:08:00.9748522Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-10T07:08:00.9748813Z               "line": 88
2026-06-10T07:08:00.9749246Z             },
2026-06-10T07:08:00.9749528Z             {
2026-06-10T07:08:00.9749963Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T07:08:00.9750340Z               "line": 294
2026-06-10T07:08:00.9750729Z             },
2026-06-10T07:08:00.9751091Z             {
2026-06-10T07:08:00.9751486Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:00.9751854Z               "line": 620
2026-06-10T07:08:00.9752169Z             },
2026-06-10T07:08:00.9752537Z             {
2026-06-10T07:08:00.9752942Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:00.9753308Z               "line": 628
2026-06-10T07:08:00.9753663Z             },
2026-06-10T07:08:00.9753978Z             {
2026-06-10T07:08:00.9754426Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:00.9754761Z               "line": 645
2026-06-10T07:08:00.9755212Z             },
2026-06-10T07:08:00.9755608Z             {
2026-06-10T07:08:00.9756043Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:00.9756474Z               "line": 699
2026-06-10T07:08:00.9756887Z             },
2026-06-10T07:08:00.9757230Z             {
2026-06-10T07:08:00.9757665Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9758009Z               "line": 883
2026-06-10T07:08:00.9758376Z             },
2026-06-10T07:08:00.9758704Z             {
2026-06-10T07:08:00.9759268Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:00.9759636Z               "line": 895
2026-06-10T07:08:00.9759979Z             },
2026-06-10T07:08:00.9760256Z             {
2026-06-10T07:08:00.9760809Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T07:08:00.9761196Z               "line": 110
2026-06-10T07:08:00.9761506Z             },
2026-06-10T07:08:00.9761842Z             {
2026-06-10T07:08:00.9762248Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T07:08:00.9762648Z               "line": 142
2026-06-10T07:08:00.9763005Z             }
2026-06-10T07:08:00.9763311Z           ]
2026-06-10T07:08:00.9763659Z         }
2026-06-10T07:08:00.9763958Z       }
2026-06-10T07:08:00.9764347Z     },
2026-06-10T07:08:00.9764666Z     {
2026-06-10T07:08:00.9765034Z       "id": "REQ-DAEMON-3",
2026-06-10T07:08:00.9765654Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-10T07:08:00.9765979Z       "requiredStages": [
2026-06-10T07:08:00.9766388Z         "impl",
2026-06-10T07:08:00.9766703Z         "unit",
2026-06-10T07:08:00.9767048Z         "int"
2026-06-10T07:08:00.9767358Z       ],
2026-06-10T07:08:00.9767692Z       "stages": {
2026-06-10T07:08:00.9768172Z         "doc": {
2026-06-10T07:08:00.9768512Z           "complete": false,
2026-06-10T07:08:00.9769098Z           "evidence": []
2026-06-10T07:08:00.9769401Z         },
2026-06-10T07:08:00.9769737Z         "impl": {
2026-06-10T07:08:00.9770134Z           "complete": true,
2026-06-10T07:08:00.9770497Z           "evidence": [
2026-06-10T07:08:00.9770830Z             {
2026-06-10T07:08:00.9771374Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9771737Z               "line": 14
2026-06-10T07:08:00.9772090Z             },
2026-06-10T07:08:00.9772451Z             {
2026-06-10T07:08:00.9772907Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-10T07:08:00.9773246Z               "line": 11
2026-06-10T07:08:00.9773575Z             },
2026-06-10T07:08:00.9773919Z             {
2026-06-10T07:08:00.9774348Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:00.9774670Z               "line": 247
2026-06-10T07:08:00.9775027Z             },
2026-06-10T07:08:00.9775356Z             {
2026-06-10T07:08:00.9775847Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9776347Z               "line": 1294
2026-06-10T07:08:00.9776657Z             },
2026-06-10T07:08:00.9777004Z             {
2026-06-10T07:08:00.9777433Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9777831Z               "line": 3127
2026-06-10T07:08:00.9778190Z             },
2026-06-10T07:08:00.9778509Z             {
2026-06-10T07:08:00.9778924Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9779348Z               "line": 3148
2026-06-10T07:08:00.9779716Z             }
2026-06-10T07:08:00.9780076Z           ]
2026-06-10T07:08:00.9780388Z         },
2026-06-10T07:08:00.9780770Z         "int": {
2026-06-10T07:08:00.9781128Z           "complete": true,
2026-06-10T07:08:00.9781500Z           "evidence": [
2026-06-10T07:08:00.9781819Z             {
2026-06-10T07:08:00.9782287Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:00.9782757Z               "line": 46
2026-06-10T07:08:00.9783077Z             },
2026-06-10T07:08:00.9783434Z             {
2026-06-10T07:08:00.9783869Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:00.9784265Z               "line": 435
2026-06-10T07:08:00.9784575Z             }
2026-06-10T07:08:00.9784918Z           ]
2026-06-10T07:08:00.9785282Z         },
2026-06-10T07:08:00.9785619Z         "unit": {
2026-06-10T07:08:00.9786006Z           "complete": true,
2026-06-10T07:08:00.9786330Z           "evidence": [
2026-06-10T07:08:00.9786673Z             {
2026-06-10T07:08:00.9787141Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9787498Z               "line": 767
2026-06-10T07:08:00.9787846Z             },
2026-06-10T07:08:00.9788158Z             {
2026-06-10T07:08:00.9788553Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9788863Z               "line": 7620
2026-06-10T07:08:00.9789374Z             }
2026-06-10T07:08:00.9789718Z           ]
2026-06-10T07:08:00.9790028Z         }
2026-06-10T07:08:00.9790380Z       }
2026-06-10T07:08:00.9790669Z     },
2026-06-10T07:08:00.9791073Z     {
2026-06-10T07:08:00.9791407Z       "id": "REQ-DAEMON-4",
2026-06-10T07:08:00.9791865Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-10T07:08:00.9792232Z       "requiredStages": [
2026-06-10T07:08:00.9792532Z         "impl",
2026-06-10T07:08:00.9792951Z         "unit",
2026-06-10T07:08:00.9793262Z         "int"
2026-06-10T07:08:00.9793600Z       ],
2026-06-10T07:08:00.9793919Z       "stages": {
2026-06-10T07:08:00.9794248Z         "doc": {
2026-06-10T07:08:00.9794671Z           "complete": false,
2026-06-10T07:08:00.9794991Z           "evidence": []
2026-06-10T07:08:00.9795335Z         },
2026-06-10T07:08:00.9795657Z         "impl": {
2026-06-10T07:08:00.9796046Z           "complete": true,
2026-06-10T07:08:00.9796404Z           "evidence": [
2026-06-10T07:08:00.9796800Z             {
2026-06-10T07:08:00.9797257Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9797772Z               "line": 371
2026-06-10T07:08:00.9798101Z             },
2026-06-10T07:08:00.9798468Z             {
2026-06-10T07:08:00.9799038Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9799409Z               "line": 436
2026-06-10T07:08:00.9799747Z             },
2026-06-10T07:08:00.9800105Z             {
2026-06-10T07:08:00.9800682Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9801063Z               "line": 458
2026-06-10T07:08:00.9801389Z             }
2026-06-10T07:08:00.9801727Z           ]
2026-06-10T07:08:00.9802052Z         },
2026-06-10T07:08:00.9802400Z         "int": {
2026-06-10T07:08:00.9802778Z           "complete": true,
2026-06-10T07:08:00.9803112Z           "evidence": [
2026-06-10T07:08:00.9803451Z             {
2026-06-10T07:08:00.9803887Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-10T07:08:00.9804263Z               "line": 34
2026-06-10T07:08:00.9804630Z             }
2026-06-10T07:08:00.9804950Z           ]
2026-06-10T07:08:00.9805289Z         },
2026-06-10T07:08:00.9805633Z         "unit": {
2026-06-10T07:08:00.9806020Z           "complete": true,
2026-06-10T07:08:00.9806411Z           "evidence": [
2026-06-10T07:08:00.9806712Z             {
2026-06-10T07:08:00.9807164Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:00.9807522Z               "line": 428
2026-06-10T07:08:00.9807890Z             },
2026-06-10T07:08:00.9808229Z             {
2026-06-10T07:08:00.9808690Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9809180Z               "line": 784
2026-06-10T07:08:00.9809507Z             },
2026-06-10T07:08:00.9809875Z             {
2026-06-10T07:08:00.9810331Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9810689Z               "line": 854
2026-06-10T07:08:00.9811004Z             },
2026-06-10T07:08:00.9811343Z             {
2026-06-10T07:08:00.9811822Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9812418Z               "line": 884
2026-06-10T07:08:00.9812761Z             },
2026-06-10T07:08:00.9813080Z             {
2026-06-10T07:08:00.9813533Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:00.9813929Z               "line": 917
2026-06-10T07:08:00.9814259Z             }
2026-06-10T07:08:00.9814610Z           ]
2026-06-10T07:08:00.9814915Z         }
2026-06-10T07:08:00.9815249Z       }
2026-06-10T07:08:00.9815544Z     },
2026-06-10T07:08:00.9815978Z     {
2026-06-10T07:08:00.9816349Z       "id": "REQ-DAEMON-5",
2026-06-10T07:08:00.9820363Z       "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-10T07:08:00.9820758Z       "requiredStages": [
2026-06-10T07:08:00.9821140Z         "impl",
2026-06-10T07:08:00.9821507Z         "unit"
2026-06-10T07:08:00.9821846Z       ],
2026-06-10T07:08:00.9822169Z       "stages": {
2026-06-10T07:08:00.9822528Z         "doc": {
2026-06-10T07:08:00.9822838Z           "complete": false,
2026-06-10T07:08:00.9823273Z           "evidence": []
2026-06-10T07:08:00.9823616Z         },
2026-06-10T07:08:00.9823931Z         "impl": {
2026-06-10T07:08:00.9824302Z           "complete": true,
2026-06-10T07:08:00.9824608Z           "evidence": [
2026-06-10T07:08:00.9824998Z             {
2026-06-10T07:08:00.9825852Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9826209Z               "line": 323
2026-06-10T07:08:00.9826566Z             },
2026-06-10T07:08:00.9826853Z             {
2026-06-10T07:08:00.9827371Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9827693Z               "line": 724
2026-06-10T07:08:00.9828185Z             },
2026-06-10T07:08:00.9828485Z             {
2026-06-10T07:08:00.9828928Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9829438Z               "line": 737
2026-06-10T07:08:00.9829748Z             },
2026-06-10T07:08:00.9830100Z             {
2026-06-10T07:08:00.9830652Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9830995Z               "line": 755
2026-06-10T07:08:00.9831390Z             },
2026-06-10T07:08:00.9831710Z             {
2026-06-10T07:08:00.9832168Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9832493Z               "line": 796
2026-06-10T07:08:00.9832815Z             }
2026-06-10T07:08:00.9833165Z           ]
2026-06-10T07:08:00.9833533Z         },
2026-06-10T07:08:00.9833881Z         "int": {
2026-06-10T07:08:00.9834214Z           "complete": false,
2026-06-10T07:08:00.9834562Z           "evidence": []
2026-06-10T07:08:00.9834910Z         },
2026-06-10T07:08:00.9835297Z         "unit": {
2026-06-10T07:08:00.9835633Z           "complete": true,
2026-06-10T07:08:00.9835992Z           "evidence": [
2026-06-10T07:08:00.9836306Z             {
2026-06-10T07:08:00.9836812Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9837245Z               "line": 916
2026-06-10T07:08:00.9837570Z             },
2026-06-10T07:08:00.9837907Z             {
2026-06-10T07:08:00.9838340Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9838711Z               "line": 940
2026-06-10T07:08:00.9839149Z             },
2026-06-10T07:08:00.9839464Z             {
2026-06-10T07:08:00.9839918Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:00.9840243Z               "line": 966
2026-06-10T07:08:00.9840628Z             }
2026-06-10T07:08:00.9840983Z           ]
2026-06-10T07:08:00.9841284Z         }
2026-06-10T07:08:00.9841640Z       }
2026-06-10T07:08:00.9841946Z     },
2026-06-10T07:08:00.9842317Z     {
2026-06-10T07:08:00.9842660Z       "id": "REQ-DAEMON-6",
2026-06-10T07:08:00.9848325Z       "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-10T07:08:00.9848713Z       "requiredStages": [
2026-06-10T07:08:00.9849190Z         "impl",
2026-06-10T07:08:00.9849549Z         "unit"
2026-06-10T07:08:00.9849901Z       ],
2026-06-10T07:08:00.9850220Z       "stages": {
2026-06-10T07:08:00.9850563Z         "doc": {
2026-06-10T07:08:00.9850930Z           "complete": false,
2026-06-10T07:08:00.9851311Z           "evidence": []
2026-06-10T07:08:00.9851675Z         },
2026-06-10T07:08:00.9851990Z         "impl": {
2026-06-10T07:08:00.9852354Z           "complete": true,
2026-06-10T07:08:00.9852678Z           "evidence": [
2026-06-10T07:08:00.9853041Z             {
2026-06-10T07:08:00.9853487Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9853849Z               "line": 426
2026-06-10T07:08:00.9854204Z             },
2026-06-10T07:08:00.9854514Z             {
2026-06-10T07:08:00.9854987Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9855330Z               "line": 457
2026-06-10T07:08:00.9855668Z             },
2026-06-10T07:08:00.9855987Z             {
2026-06-10T07:08:00.9856436Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9856816Z               "line": 55
2026-06-10T07:08:00.9857136Z             },
2026-06-10T07:08:00.9857604Z             {
2026-06-10T07:08:00.9858018Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9858405Z               "line": 70
2026-06-10T07:08:00.9858768Z             },
2026-06-10T07:08:00.9859259Z             {
2026-06-10T07:08:00.9859669Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9859988Z               "line": 1348
2026-06-10T07:08:00.9860428Z             },
2026-06-10T07:08:00.9860728Z             {
2026-06-10T07:08:00.9861301Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9861654Z               "line": 1374
2026-06-10T07:08:00.9861957Z             }
2026-06-10T07:08:00.9862303Z           ]
2026-06-10T07:08:00.9862637Z         },
2026-06-10T07:08:00.9863042Z         "int": {
2026-06-10T07:08:00.9863380Z           "complete": false,
2026-06-10T07:08:00.9863738Z           "evidence": []
2026-06-10T07:08:00.9864077Z         },
2026-06-10T07:08:00.9864371Z         "unit": {
2026-06-10T07:08:00.9864792Z           "complete": true,
2026-06-10T07:08:00.9865131Z           "evidence": [
2026-06-10T07:08:00.9865471Z             {
2026-06-10T07:08:00.9865923Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9872872Z               "line": 288
2026-06-10T07:08:00.9873202Z             },
2026-06-10T07:08:00.9873484Z             {
2026-06-10T07:08:00.9873907Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9874208Z               "line": 299
2026-06-10T07:08:00.9874485Z             },
2026-06-10T07:08:00.9874757Z             {
2026-06-10T07:08:00.9875160Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9875454Z               "line": 325
2026-06-10T07:08:00.9875755Z             },
2026-06-10T07:08:00.9876040Z             {
2026-06-10T07:08:00.9876427Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9876718Z               "line": 346
2026-06-10T07:08:00.9876990Z             }
2026-06-10T07:08:00.9877270Z           ]
2026-06-10T07:08:00.9877561Z         }
2026-06-10T07:08:00.9877841Z       }
2026-06-10T07:08:00.9878113Z     },
2026-06-10T07:08:00.9878385Z     {
2026-06-10T07:08:00.9878690Z       "id": "REQ-DAEMON-7",
2026-06-10T07:08:00.9882925Z       "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-10T07:08:00.9883251Z       "requiredStages": [
2026-06-10T07:08:00.9883533Z         "impl",
2026-06-10T07:08:00.9883819Z         "unit"
2026-06-10T07:08:00.9884105Z       ],
2026-06-10T07:08:00.9884391Z       "stages": {
2026-06-10T07:08:00.9884678Z         "doc": {
2026-06-10T07:08:00.9884968Z           "complete": false,
2026-06-10T07:08:00.9885283Z           "evidence": []
2026-06-10T07:08:00.9885558Z         },
2026-06-10T07:08:00.9885832Z         "impl": {
2026-06-10T07:08:00.9886128Z           "complete": true,
2026-06-10T07:08:00.9886424Z           "evidence": [
2026-06-10T07:08:00.9886724Z             {
2026-06-10T07:08:00.9887115Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9887430Z               "line": 476
2026-06-10T07:08:00.9887710Z             },
2026-06-10T07:08:00.9887992Z             {
2026-06-10T07:08:00.9888392Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:00.9888683Z               "line": 601
2026-06-10T07:08:00.9889160Z             },
2026-06-10T07:08:00.9889446Z             {
2026-06-10T07:08:00.9889833Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9890119Z               "line": 89
2026-06-10T07:08:00.9890404Z             },
2026-06-10T07:08:00.9890693Z             {
2026-06-10T07:08:00.9891024Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9891469Z               "line": 1295
2026-06-10T07:08:00.9891742Z             }
2026-06-10T07:08:00.9892022Z           ]
2026-06-10T07:08:00.9892298Z         },
2026-06-10T07:08:00.9892584Z         "int": {
2026-06-10T07:08:00.9892880Z           "complete": false,
2026-06-10T07:08:00.9893171Z           "evidence": []
2026-06-10T07:08:00.9893546Z         },
2026-06-10T07:08:00.9893849Z         "unit": {
2026-06-10T07:08:00.9894164Z           "complete": true,
2026-06-10T07:08:00.9894459Z           "evidence": [
2026-06-10T07:08:00.9894746Z             {
2026-06-10T07:08:00.9895127Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9895418Z               "line": 314
2026-06-10T07:08:00.9895704Z             },
2026-06-10T07:08:00.9895981Z             {
2026-06-10T07:08:00.9896331Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9896622Z               "line": 5490
2026-06-10T07:08:00.9896903Z             }
2026-06-10T07:08:00.9897189Z           ]
2026-06-10T07:08:00.9897471Z         }
2026-06-10T07:08:00.9897756Z       }
2026-06-10T07:08:00.9898032Z     },
2026-06-10T07:08:00.9898319Z     {
2026-06-10T07:08:00.9898619Z       "id": "REQ-DAEMON-8",
2026-06-10T07:08:00.9901485Z       "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-10T07:08:00.9901800Z       "requiredStages": [
2026-06-10T07:08:00.9902087Z         "impl",
2026-06-10T07:08:00.9902367Z         "unit"
2026-06-10T07:08:00.9902650Z       ],
2026-06-10T07:08:00.9902945Z       "stages": {
2026-06-10T07:08:00.9903226Z         "doc": {
2026-06-10T07:08:00.9903527Z           "complete": false,
2026-06-10T07:08:00.9903832Z           "evidence": []
2026-06-10T07:08:00.9904106Z         },
2026-06-10T07:08:00.9904409Z         "impl": {
2026-06-10T07:08:00.9904705Z           "complete": true,
2026-06-10T07:08:00.9905001Z           "evidence": [
2026-06-10T07:08:00.9905287Z             {
2026-06-10T07:08:00.9906045Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9906466Z               "line": 376
2026-06-10T07:08:00.9906774Z             },
2026-06-10T07:08:00.9907052Z             {
2026-06-10T07:08:00.9907454Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9907754Z               "line": 56
2026-06-10T07:08:00.9908041Z             }
2026-06-10T07:08:00.9908316Z           ]
2026-06-10T07:08:00.9908616Z         },
2026-06-10T07:08:00.9908903Z         "int": {
2026-06-10T07:08:00.9909304Z           "complete": false,
2026-06-10T07:08:00.9909597Z           "evidence": []
2026-06-10T07:08:00.9909874Z         },
2026-06-10T07:08:00.9910165Z         "unit": {
2026-06-10T07:08:00.9910461Z           "complete": true,
2026-06-10T07:08:00.9910804Z           "evidence": [
2026-06-10T07:08:00.9911086Z             {
2026-06-10T07:08:00.9911481Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9911766Z               "line": 288
2026-06-10T07:08:00.9912050Z             },
2026-06-10T07:08:00.9912328Z             {
2026-06-10T07:08:00.9912708Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-10T07:08:00.9913009Z               "line": 325
2026-06-10T07:08:00.9913280Z             }
2026-06-10T07:08:00.9913562Z           ]
2026-06-10T07:08:00.9913844Z         }
2026-06-10T07:08:00.9914116Z       }
2026-06-10T07:08:00.9914397Z     },
2026-06-10T07:08:00.9914667Z     {
2026-06-10T07:08:00.9914969Z       "id": "REQ-DAEMON-9",
2026-06-10T07:08:00.9925989Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-10T07:08:00.9926431Z       "requiredStages": [
2026-06-10T07:08:00.9926769Z         "impl",
2026-06-10T07:08:00.9927055Z         "unit"
2026-06-10T07:08:00.9927318Z       ],
2026-06-10T07:08:00.9927615Z       "stages": {
2026-06-10T07:08:00.9927894Z         "doc": {
2026-06-10T07:08:00.9928201Z           "complete": false,
2026-06-10T07:08:00.9928488Z           "evidence": []
2026-06-10T07:08:00.9928763Z         },
2026-06-10T07:08:00.9929251Z         "impl": {
2026-06-10T07:08:00.9929608Z           "complete": true,
2026-06-10T07:08:00.9929894Z           "evidence": [
2026-06-10T07:08:00.9930162Z             {
2026-06-10T07:08:00.9930561Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:00.9930843Z               "line": 241
2026-06-10T07:08:00.9931124Z             },
2026-06-10T07:08:00.9931406Z             {
2026-06-10T07:08:00.9931786Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:00.9932068Z               "line": 306
2026-06-10T07:08:00.9932340Z             },
2026-06-10T07:08:00.9932621Z             {
2026-06-10T07:08:00.9932996Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9933342Z               "line": 190
2026-06-10T07:08:00.9933628Z             },
2026-06-10T07:08:00.9933904Z             {
2026-06-10T07:08:00.9934282Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9934577Z               "line": 275
2026-06-10T07:08:00.9934853Z             },
2026-06-10T07:08:00.9935130Z             {
2026-06-10T07:08:00.9935503Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9935801Z               "line": 312
2026-06-10T07:08:00.9936075Z             },
2026-06-10T07:08:00.9936353Z             {
2026-06-10T07:08:00.9936686Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9936987Z               "line": 1403
2026-06-10T07:08:00.9937372Z             }
2026-06-10T07:08:00.9937726Z           ]
2026-06-10T07:08:00.9938011Z         },
2026-06-10T07:08:00.9938292Z         "int": {
2026-06-10T07:08:00.9938594Z           "complete": false,
2026-06-10T07:08:00.9938900Z           "evidence": []
2026-06-10T07:08:00.9939266Z         },
2026-06-10T07:08:00.9939544Z         "unit": {
2026-06-10T07:08:00.9939844Z           "complete": true,
2026-06-10T07:08:00.9940135Z           "evidence": [
2026-06-10T07:08:00.9940412Z             {
2026-06-10T07:08:00.9940788Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:00.9941079Z               "line": 723
2026-06-10T07:08:00.9941364Z             },
2026-06-10T07:08:00.9941646Z             {
2026-06-10T07:08:00.9941976Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:00.9942280Z               "line": 7485
2026-06-10T07:08:00.9942566Z             }
2026-06-10T07:08:00.9942851Z           ]
2026-06-10T07:08:00.9943133Z         }
2026-06-10T07:08:00.9943418Z       }
2026-06-10T07:08:00.9943712Z     },
2026-06-10T07:08:00.9943989Z     {
2026-06-10T07:08:00.9944289Z       "id": "REQ-DOCS-1",
2026-06-10T07:08:00.9944913Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-10T07:08:00.9945233Z       "requiredStages": [
2026-06-10T07:08:00.9945510Z         "doc",
2026-06-10T07:08:00.9945806Z         "impl"
2026-06-10T07:08:00.9946082Z       ],
2026-06-10T07:08:00.9946366Z       "stages": {
2026-06-10T07:08:00.9946659Z         "doc": {
2026-06-10T07:08:00.9946959Z           "complete": true,
2026-06-10T07:08:00.9947256Z           "evidence": [
2026-06-10T07:08:00.9947666Z             {
2026-06-10T07:08:00.9948004Z               "path": "docs-site/src/index.md",
2026-06-10T07:08:00.9948290Z               "line": 50
2026-06-10T07:08:00.9948562Z             }
2026-06-10T07:08:00.9948838Z           ]
2026-06-10T07:08:00.9949178Z         },
2026-06-10T07:08:00.9949470Z         "impl": {
2026-06-10T07:08:00.9949850Z           "complete": true,
2026-06-10T07:08:00.9950146Z           "evidence": [
2026-06-10T07:08:00.9950423Z             {
2026-06-10T07:08:00.9950823Z               "path": ".github/workflows/docs-publish.yml",
2026-06-10T07:08:00.9951119Z               "line": 12
2026-06-10T07:08:00.9951400Z             },
2026-06-10T07:08:00.9951686Z             {
2026-06-10T07:08:00.9952029Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:00.9952325Z               "line": 14
2026-06-10T07:08:00.9952601Z             }
2026-06-10T07:08:00.9952883Z           ]
2026-06-10T07:08:00.9953165Z         },
2026-06-10T07:08:00.9953446Z         "int": {
2026-06-10T07:08:00.9953765Z           "complete": false,
2026-06-10T07:08:00.9954050Z           "evidence": []
2026-06-10T07:08:00.9954328Z         },
2026-06-10T07:08:00.9954610Z         "unit": {
2026-06-10T07:08:00.9954920Z           "complete": false,
2026-06-10T07:08:00.9955329Z           "evidence": []
2026-06-10T07:08:00.9955673Z         }
2026-06-10T07:08:00.9955983Z       }
2026-06-10T07:08:00.9956260Z     },
2026-06-10T07:08:00.9956541Z     {
2026-06-10T07:08:00.9956841Z       "id": "REQ-DOCS-2",
2026-06-10T07:08:00.9957353Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-10T07:08:00.9957654Z       "requiredStages": [
2026-06-10T07:08:00.9957935Z         "doc",
2026-06-10T07:08:00.9958221Z         "int"
2026-06-10T07:08:00.9958502Z       ],
2026-06-10T07:08:00.9958789Z       "stages": {
2026-06-10T07:08:00.9959165Z         "doc": {
2026-06-10T07:08:00.9959479Z           "complete": true,
2026-06-10T07:08:00.9959772Z           "evidence": [
2026-06-10T07:08:00.9960053Z             {
2026-06-10T07:08:00.9960458Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-10T07:08:00.9960749Z               "line": 3
2026-06-10T07:08:00.9961030Z             },
2026-06-10T07:08:00.9961308Z             {
2026-06-10T07:08:00.9961718Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-10T07:08:00.9962027Z               "line": 3
2026-06-10T07:08:00.9962303Z             }
2026-06-10T07:08:00.9962580Z           ]
2026-06-10T07:08:00.9962861Z         },
2026-06-10T07:08:00.9963138Z         "impl": {
2026-06-10T07:08:00.9963434Z           "complete": false,
2026-06-10T07:08:00.9963730Z           "evidence": []
2026-06-10T07:08:00.9964001Z         },
2026-06-10T07:08:00.9964277Z         "int": {
2026-06-10T07:08:00.9964581Z           "complete": true,
2026-06-10T07:08:00.9964875Z           "evidence": [
2026-06-10T07:08:00.9965151Z             {
2026-06-10T07:08:00.9965542Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T07:08:00.9966062Z               "line": 14
2026-06-10T07:08:00.9966348Z             }
2026-06-10T07:08:00.9966616Z           ]
2026-06-10T07:08:00.9966892Z         },
2026-06-10T07:08:00.9967168Z         "unit": {
2026-06-10T07:08:00.9967472Z           "complete": false,
2026-06-10T07:08:00.9967765Z           "evidence": []
2026-06-10T07:08:00.9968052Z         }
2026-06-10T07:08:00.9968348Z       }
2026-06-10T07:08:00.9968620Z     },
2026-06-10T07:08:00.9968901Z     {
2026-06-10T07:08:00.9969277Z       "id": "REQ-DOCS-3",
2026-06-10T07:08:00.9969817Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-10T07:08:00.9970130Z       "requiredStages": [
2026-06-10T07:08:00.9970418Z         "doc"
2026-06-10T07:08:00.9970699Z       ],
2026-06-10T07:08:00.9970990Z       "stages": {
2026-06-10T07:08:00.9971276Z         "doc": {
2026-06-10T07:08:00.9971577Z           "complete": true,
2026-06-10T07:08:00.9971873Z           "evidence": [
2026-06-10T07:08:00.9972158Z             {
2026-06-10T07:08:00.9972651Z               "path": "docs-site/src/index.md",
2026-06-10T07:08:00.9972948Z               "line": 42
2026-06-10T07:08:00.9973216Z             }
2026-06-10T07:08:00.9973501Z           ]
2026-06-10T07:08:00.9973789Z         },
2026-06-10T07:08:00.9974074Z         "impl": {
2026-06-10T07:08:00.9974379Z           "complete": false,
2026-06-10T07:08:00.9974799Z           "evidence": []
2026-06-10T07:08:00.9975085Z         },
2026-06-10T07:08:00.9975364Z         "int": {
2026-06-10T07:08:00.9975669Z           "complete": false,
2026-06-10T07:08:00.9975960Z           "evidence": []
2026-06-10T07:08:00.9976241Z         },
2026-06-10T07:08:00.9976523Z         "unit": {
2026-06-10T07:08:00.9976832Z           "complete": false,
2026-06-10T07:08:00.9977133Z           "evidence": []
2026-06-10T07:08:00.9977408Z         }
2026-06-10T07:08:00.9977709Z       }
2026-06-10T07:08:00.9977985Z     },
2026-06-10T07:08:00.9978259Z     {
2026-06-10T07:08:00.9978550Z       "id": "REQ-DOCS-4",
2026-06-10T07:08:00.9979255Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-10T07:08:00.9979566Z       "requiredStages": [
2026-06-10T07:08:00.9979847Z         "doc",
2026-06-10T07:08:00.9980138Z         "impl",
2026-06-10T07:08:00.9980415Z         "unit"
2026-06-10T07:08:00.9980685Z       ],
2026-06-10T07:08:00.9980973Z       "stages": {
2026-06-10T07:08:00.9981259Z         "doc": {
2026-06-10T07:08:00.9981569Z           "complete": true,
2026-06-10T07:08:00.9981855Z           "evidence": [
2026-06-10T07:08:00.9982142Z             {
2026-06-10T07:08:00.9982494Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-10T07:08:00.9982800Z               "line": 35
2026-06-10T07:08:00.9983080Z             }
2026-06-10T07:08:00.9983362Z           ]
2026-06-10T07:08:00.9983638Z         },
2026-06-10T07:08:00.9983925Z         "impl": {
2026-06-10T07:08:00.9984230Z           "complete": true,
2026-06-10T07:08:00.9984530Z           "evidence": [
2026-06-10T07:08:00.9984816Z             {
2026-06-10T07:08:00.9985217Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:00.9985513Z               "line": 522
2026-06-10T07:08:00.9985796Z             },
2026-06-10T07:08:00.9986075Z             {
2026-06-10T07:08:00.9986424Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:00.9986719Z               "line": 15
2026-06-10T07:08:00.9987010Z             }
2026-06-10T07:08:00.9987291Z           ]
2026-06-10T07:08:00.9987577Z         },
2026-06-10T07:08:00.9987863Z         "int": {
2026-06-10T07:08:00.9988164Z           "complete": false,
2026-06-10T07:08:00.9988465Z           "evidence": []
2026-06-10T07:08:00.9988745Z         },
2026-06-10T07:08:00.9989120Z         "unit": {
2026-06-10T07:08:00.9989420Z           "complete": true,
2026-06-10T07:08:00.9989720Z           "evidence": [
2026-06-10T07:08:00.9990007Z             {
2026-06-10T07:08:00.9990402Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:00.9990707Z               "line": 978
2026-06-10T07:08:00.9990999Z             }
2026-06-10T07:08:00.9991283Z           ]
2026-06-10T07:08:00.9991557Z         }
2026-06-10T07:08:00.9991843Z       }
2026-06-10T07:08:00.9992119Z     },
2026-06-10T07:08:00.9992387Z     {
2026-06-10T07:08:00.9992683Z       "id": "REQ-DOCS-5",
2026-06-10T07:08:00.9993284Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-10T07:08:00.9993593Z       "requiredStages": [
2026-06-10T07:08:00.9993862Z         "impl",
2026-06-10T07:08:00.9994150Z         "int"
2026-06-10T07:08:00.9994432Z       ],
2026-06-10T07:08:00.9994717Z       "stages": {
2026-06-10T07:08:00.9995008Z         "doc": {
2026-06-10T07:08:00.9995313Z           "complete": false,
2026-06-10T07:08:00.9995609Z           "evidence": []
2026-06-10T07:08:00.9995885Z         },
2026-06-10T07:08:00.9996167Z         "impl": {
2026-06-10T07:08:00.9996466Z           "complete": true,
2026-06-10T07:08:00.9996751Z           "evidence": [
2026-06-10T07:08:00.9997032Z             {
2026-06-10T07:08:00.9997551Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:00.9997846Z               "line": 523
2026-06-10T07:08:00.9998128Z             },
2026-06-10T07:08:00.9998414Z             {
2026-06-10T07:08:00.9998772Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:00.9999157Z               "line": 113
2026-06-10T07:08:00.9999541Z             }
2026-06-10T07:08:00.9999827Z           ]
2026-06-10T07:08:01.0000113Z         },
2026-06-10T07:08:01.0000399Z         "int": {
2026-06-10T07:08:01.0000700Z           "complete": true,
2026-06-10T07:08:01.0001000Z           "evidence": [
2026-06-10T07:08:01.0001277Z             {
2026-06-10T07:08:01.0001629Z               "path": ".github/workflows/ci.yml",
2026-06-10T07:08:01.0001918Z               "line": 86
2026-06-10T07:08:01.0002199Z             },
2026-06-10T07:08:01.0002476Z             {
2026-06-10T07:08:01.0002871Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.0003172Z               "line": 1015
2026-06-10T07:08:01.0003458Z             }
2026-06-10T07:08:01.0003735Z           ]
2026-06-10T07:08:01.0004006Z         },
2026-06-10T07:08:01.0004297Z         "unit": {
2026-06-10T07:08:01.0004595Z           "complete": false,
2026-06-10T07:08:01.0004896Z           "evidence": []
2026-06-10T07:08:01.0005178Z         }
2026-06-10T07:08:01.0005450Z       }
2026-06-10T07:08:01.0005727Z     },
2026-06-10T07:08:01.0006008Z     {
2026-06-10T07:08:01.0006304Z       "id": "REQ-DOCS-6",
2026-06-10T07:08:01.0007320Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-10T07:08:01.0007635Z       "requiredStages": [
2026-06-10T07:08:01.0007927Z         "impl",
2026-06-10T07:08:01.0008203Z         "unit",
2026-06-10T07:08:01.0008488Z         "int"
2026-06-10T07:08:01.0008760Z       ],
2026-06-10T07:08:01.0009176Z       "stages": {
2026-06-10T07:08:01.0009453Z         "doc": {
2026-06-10T07:08:01.0009755Z           "complete": true,
2026-06-10T07:08:01.0010067Z           "evidence": [
2026-06-10T07:08:01.0010344Z             {
2026-06-10T07:08:01.0010760Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-10T07:08:01.0011046Z               "line": 4
2026-06-10T07:08:01.0011327Z             }
2026-06-10T07:08:01.0011603Z           ]
2026-06-10T07:08:01.0011894Z         },
2026-06-10T07:08:01.0012184Z         "impl": {
2026-06-10T07:08:01.0012487Z           "complete": true,
2026-06-10T07:08:01.0012783Z           "evidence": [
2026-06-10T07:08:01.0013064Z             {
2026-06-10T07:08:01.0013403Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0013694Z               "line": 4004
2026-06-10T07:08:01.0013971Z             }
2026-06-10T07:08:01.0014261Z           ]
2026-06-10T07:08:01.0014537Z         },
2026-06-10T07:08:01.0014824Z         "int": {
2026-06-10T07:08:01.0015122Z           "complete": true,
2026-06-10T07:08:01.0015419Z           "evidence": [
2026-06-10T07:08:01.0015705Z             {
2026-06-10T07:08:01.0016086Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T07:08:01.0016368Z               "line": 34
2026-06-10T07:08:01.0016634Z             }
2026-06-10T07:08:01.0016916Z           ]
2026-06-10T07:08:01.0017198Z         },
2026-06-10T07:08:01.0017496Z         "unit": {
2026-06-10T07:08:01.0017818Z           "complete": true,
2026-06-10T07:08:01.0018104Z           "evidence": [
2026-06-10T07:08:01.0018380Z             {
2026-06-10T07:08:01.0018714Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0019097Z               "line": 7647
2026-06-10T07:08:01.0019373Z             }
2026-06-10T07:08:01.0019649Z           ]
2026-06-10T07:08:01.0019925Z         }
2026-06-10T07:08:01.0020211Z       }
2026-06-10T07:08:01.0020495Z     },
2026-06-10T07:08:01.0020772Z     {
2026-06-10T07:08:01.0021081Z       "id": "REQ-EP-1",
2026-06-10T07:08:01.0021486Z       "title": "Day-one endpoint types; open type system",
2026-06-10T07:08:01.0021801Z       "requiredStages": [
2026-06-10T07:08:01.0022187Z         "impl",
2026-06-10T07:08:01.0022473Z         "unit"
2026-06-10T07:08:01.0022759Z       ],
2026-06-10T07:08:01.0023047Z       "stages": {
2026-06-10T07:08:01.0023334Z         "doc": {
2026-06-10T07:08:01.0023644Z           "complete": false,
2026-06-10T07:08:01.0023948Z           "evidence": []
2026-06-10T07:08:01.0024325Z         },
2026-06-10T07:08:01.0024616Z         "impl": {
2026-06-10T07:08:01.0024926Z           "complete": true,
2026-06-10T07:08:01.0025222Z           "evidence": [
2026-06-10T07:08:01.0025504Z             {
2026-06-10T07:08:01.0025893Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0026199Z               "line": 77
2026-06-10T07:08:01.0026527Z             },
2026-06-10T07:08:01.0026813Z             {
2026-06-10T07:08:01.0027213Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0027500Z               "line": 94
2026-06-10T07:08:01.0027782Z             }
2026-06-10T07:08:01.0028066Z           ]
2026-06-10T07:08:01.0028359Z         },
2026-06-10T07:08:01.0028650Z         "int": {
2026-06-10T07:08:01.0029051Z           "complete": false,
2026-06-10T07:08:01.0029356Z           "evidence": []
2026-06-10T07:08:01.0029633Z         },
2026-06-10T07:08:01.0029914Z         "unit": {
2026-06-10T07:08:01.0030214Z           "complete": true,
2026-06-10T07:08:01.0030519Z           "evidence": [
2026-06-10T07:08:01.0030795Z             {
2026-06-10T07:08:01.0031178Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0031474Z               "line": 161
2026-06-10T07:08:01.0031746Z             },
2026-06-10T07:08:01.0032033Z             {
2026-06-10T07:08:01.0032413Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0032709Z               "line": 178
2026-06-10T07:08:01.0032985Z             }
2026-06-10T07:08:01.0033267Z           ]
2026-06-10T07:08:01.0033552Z         }
2026-06-10T07:08:01.0033841Z       }
2026-06-10T07:08:01.0034127Z     },
2026-06-10T07:08:01.0034413Z     {
2026-06-10T07:08:01.0034713Z       "id": "REQ-EP-2",
2026-06-10T07:08:01.0035229Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-10T07:08:01.0035538Z       "requiredStages": [
2026-06-10T07:08:01.0035824Z         "impl",
2026-06-10T07:08:01.0036106Z         "unit"
2026-06-10T07:08:01.0036396Z       ],
2026-06-10T07:08:01.0036687Z       "stages": {
2026-06-10T07:08:01.0036977Z         "doc": {
2026-06-10T07:08:01.0037278Z           "complete": false,
2026-06-10T07:08:01.0037582Z           "evidence": []
2026-06-10T07:08:01.0037864Z         },
2026-06-10T07:08:01.0038145Z         "impl": {
2026-06-10T07:08:01.0038450Z           "complete": true,
2026-06-10T07:08:01.0038743Z           "evidence": [
2026-06-10T07:08:01.0039096Z             {
2026-06-10T07:08:01.0039481Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0039777Z               "line": 114
2026-06-10T07:08:01.0040059Z             },
2026-06-10T07:08:01.0040345Z             {
2026-06-10T07:08:01.0040736Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0041032Z               "line": 131
2026-06-10T07:08:01.0041322Z             },
2026-06-10T07:08:01.0041601Z             {
2026-06-10T07:08:01.0041991Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0042287Z               "line": 138
2026-06-10T07:08:01.0042559Z             }
2026-06-10T07:08:01.0042846Z           ]
2026-06-10T07:08:01.0043118Z         },
2026-06-10T07:08:01.0043399Z         "int": {
2026-06-10T07:08:01.0043705Z           "complete": false,
2026-06-10T07:08:01.0044002Z           "evidence": []
2026-06-10T07:08:01.0044277Z         },
2026-06-10T07:08:01.0044558Z         "unit": {
2026-06-10T07:08:01.0044853Z           "complete": true,
2026-06-10T07:08:01.0045182Z           "evidence": [
2026-06-10T07:08:01.0045483Z             {
2026-06-10T07:08:01.0045869Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0046319Z               "line": 190
2026-06-10T07:08:01.0046605Z             },
2026-06-10T07:08:01.0046869Z             {
2026-06-10T07:08:01.0047251Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0047533Z               "line": 208
2026-06-10T07:08:01.0047813Z             },
2026-06-10T07:08:01.0048080Z             {
2026-06-10T07:08:01.0048563Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-10T07:08:01.0048855Z               "line": 221
2026-06-10T07:08:01.0049205Z             }
2026-06-10T07:08:01.0049494Z           ]
2026-06-10T07:08:01.0049765Z         }
2026-06-10T07:08:01.0050046Z       }
2026-06-10T07:08:01.0050314Z     },
2026-06-10T07:08:01.0050595Z     {
2026-06-10T07:08:01.0050896Z       "id": "REQ-EP-3",
2026-06-10T07:08:01.0051473Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-10T07:08:01.0051788Z       "requiredStages": [
2026-06-10T07:08:01.0052072Z         "impl",
2026-06-10T07:08:01.0052361Z         "unit"
2026-06-10T07:08:01.0052646Z       ],
2026-06-10T07:08:01.0052942Z       "stages": {
2026-06-10T07:08:01.0053228Z         "doc": {
2026-06-10T07:08:01.0053529Z           "complete": false,
2026-06-10T07:08:01.0053825Z           "evidence": []
2026-06-10T07:08:01.0054105Z         },
2026-06-10T07:08:01.0054402Z         "impl": {
2026-06-10T07:08:01.0054710Z           "complete": true,
2026-06-10T07:08:01.0055004Z           "evidence": [
2026-06-10T07:08:01.0055291Z             {
2026-06-10T07:08:01.0055676Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0055972Z               "line": 31
2026-06-10T07:08:01.0056254Z             },
2026-06-10T07:08:01.0056550Z             {
2026-06-10T07:08:01.0056935Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0057232Z               "line": 49
2026-06-10T07:08:01.0057516Z             }
2026-06-10T07:08:01.0057797Z           ]
2026-06-10T07:08:01.0058083Z         },
2026-06-10T07:08:01.0058364Z         "int": {
2026-06-10T07:08:01.0058679Z           "complete": false,
2026-06-10T07:08:01.0059061Z           "evidence": []
2026-06-10T07:08:01.0059347Z         },
2026-06-10T07:08:01.0059631Z         "unit": {
2026-06-10T07:08:01.0059930Z           "complete": true,
2026-06-10T07:08:01.0060230Z           "evidence": [
2026-06-10T07:08:01.0060507Z             {
2026-06-10T07:08:01.0060907Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0061203Z               "line": 156
2026-06-10T07:08:01.0061484Z             },
2026-06-10T07:08:01.0061775Z             {
2026-06-10T07:08:01.0062152Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0062456Z               "line": 164
2026-06-10T07:08:01.0062735Z             },
2026-06-10T07:08:01.0063017Z             {
2026-06-10T07:08:01.0063389Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0063684Z               "line": 177
2026-06-10T07:08:01.0063961Z             },
2026-06-10T07:08:01.0064247Z             {
2026-06-10T07:08:01.0064633Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0064929Z               "line": 200
2026-06-10T07:08:01.0065208Z             },
2026-06-10T07:08:01.0065474Z             {
2026-06-10T07:08:01.0065865Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0066461Z               "line": 216
2026-06-10T07:08:01.0066762Z             },
2026-06-10T07:08:01.0067037Z             {
2026-06-10T07:08:01.0067415Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-10T07:08:01.0067697Z               "line": 233
2026-06-10T07:08:01.0067975Z             }
2026-06-10T07:08:01.0068261Z           ]
2026-06-10T07:08:01.0068542Z         }
2026-06-10T07:08:01.0068830Z       }
2026-06-10T07:08:01.0069244Z     },
2026-06-10T07:08:01.0069520Z     {
2026-06-10T07:08:01.0069821Z       "id": "REQ-EP-4",
2026-06-10T07:08:01.0070282Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-10T07:08:01.0070599Z       "requiredStages": [
2026-06-10T07:08:01.0071015Z         "impl",
2026-06-10T07:08:01.0071296Z         "unit"
2026-06-10T07:08:01.0071578Z       ],
2026-06-10T07:08:01.0071863Z       "stages": {
2026-06-10T07:08:01.0072154Z         "doc": {
2026-06-10T07:08:01.0072449Z           "complete": false,
2026-06-10T07:08:01.0072755Z           "evidence": []
2026-06-10T07:08:01.0073126Z         },
2026-06-10T07:08:01.0073418Z         "impl": {
2026-06-10T07:08:01.0073719Z           "complete": true,
2026-06-10T07:08:01.0074010Z           "evidence": [
2026-06-10T07:08:01.0074292Z             {
2026-06-10T07:08:01.0074668Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.0074969Z               "line": 527
2026-06-10T07:08:01.0075264Z             },
2026-06-10T07:08:01.0075545Z             {
2026-06-10T07:08:01.0075900Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.0076191Z               "line": 841
2026-06-10T07:08:01.0076477Z             },
2026-06-10T07:08:01.0076768Z             {
2026-06-10T07:08:01.0077144Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0077449Z               "line": 944
2026-06-10T07:08:01.0077727Z             },
2026-06-10T07:08:01.0078018Z             {
2026-06-10T07:08:01.0078371Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:01.0078674Z               "line": 83
2026-06-10T07:08:01.0079037Z             },
2026-06-10T07:08:01.0079327Z             {
2026-06-10T07:08:01.0079680Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:01.0079971Z               "line": 497
2026-06-10T07:08:01.0080239Z             },
2026-06-10T07:08:01.0080516Z             {
2026-06-10T07:08:01.0080871Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:01.0081164Z               "line": 583
2026-06-10T07:08:01.0081474Z             },
2026-06-10T07:08:01.0081755Z             {
2026-06-10T07:08:01.0082153Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:01.0082462Z               "line": 196
2026-06-10T07:08:01.0082743Z             },
2026-06-10T07:08:01.0083029Z             {
2026-06-10T07:08:01.0083417Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:01.0083709Z               "line": 337
2026-06-10T07:08:01.0083993Z             },
2026-06-10T07:08:01.0084332Z             {
2026-06-10T07:08:01.0084728Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:01.0085020Z               "line": 847
2026-06-10T07:08:01.0085305Z             }
2026-06-10T07:08:01.0085591Z           ]
2026-06-10T07:08:01.0085868Z         },
2026-06-10T07:08:01.0086152Z         "int": {
2026-06-10T07:08:01.0086456Z           "complete": false,
2026-06-10T07:08:01.0086761Z           "evidence": []
2026-06-10T07:08:01.0087032Z         },
2026-06-10T07:08:01.0087324Z         "unit": {
2026-06-10T07:08:01.0087629Z           "complete": true,
2026-06-10T07:08:01.0087925Z           "evidence": [
2026-06-10T07:08:01.0088211Z             {
2026-06-10T07:08:01.0088574Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:01.0088907Z               "line": 674
2026-06-10T07:08:01.0089264Z             },
2026-06-10T07:08:01.0089554Z             {
2026-06-10T07:08:01.0089964Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-10T07:08:01.0090302Z               "line": 76
2026-06-10T07:08:01.0090603Z             },
2026-06-10T07:08:01.0090879Z             {
2026-06-10T07:08:01.0091288Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-10T07:08:01.0091581Z               "line": 147
2026-06-10T07:08:01.0094858Z             }
2026-06-10T07:08:01.0095177Z           ]
2026-06-10T07:08:01.0095454Z         }
2026-06-10T07:08:01.0095736Z       }
2026-06-10T07:08:01.0096146Z     },
2026-06-10T07:08:01.0096490Z     {
2026-06-10T07:08:01.0096788Z       "id": "REQ-EP-5",
2026-06-10T07:08:01.0098903Z       "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-10T07:08:01.0099481Z       "requiredStages": [
2026-06-10T07:08:01.0099771Z         "impl",
2026-06-10T07:08:01.0100048Z         "unit",
2026-06-10T07:08:01.0100333Z         "int"
2026-06-10T07:08:01.0100619Z       ],
2026-06-10T07:08:01.0100997Z       "stages": {
2026-06-10T07:08:01.0101340Z         "doc": {
2026-06-10T07:08:01.0101636Z           "complete": false,
2026-06-10T07:08:01.0101934Z           "evidence": []
2026-06-10T07:08:01.0102222Z         },
2026-06-10T07:08:01.0102504Z         "impl": {
2026-06-10T07:08:01.0102809Z           "complete": true,
2026-06-10T07:08:01.0103100Z           "evidence": [
2026-06-10T07:08:01.0103387Z             {
2026-06-10T07:08:01.0103806Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.0104101Z               "line": 351
2026-06-10T07:08:01.0104383Z             },
2026-06-10T07:08:01.0104668Z             {
2026-06-10T07:08:01.0105071Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0105733Z               "line": 18
2026-06-10T07:08:01.0106053Z             },
2026-06-10T07:08:01.0106377Z             {
2026-06-10T07:08:01.0106774Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0107084Z               "line": 63
2026-06-10T07:08:01.0107373Z             },
2026-06-10T07:08:01.0107656Z             {
2026-06-10T07:08:01.0108048Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0108353Z               "line": 92
2026-06-10T07:08:01.0108639Z             },
2026-06-10T07:08:01.0108920Z             {
2026-06-10T07:08:01.0109407Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0109726Z               "line": 167
2026-06-10T07:08:01.0110013Z             },
2026-06-10T07:08:01.0110293Z             {
2026-06-10T07:08:01.0110684Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0110989Z               "line": 179
2026-06-10T07:08:01.0111270Z             },
2026-06-10T07:08:01.0111562Z             {
2026-06-10T07:08:01.0111943Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.0112249Z               "line": 114
2026-06-10T07:08:01.0112532Z             },
2026-06-10T07:08:01.0112821Z             {
2026-06-10T07:08:01.0113218Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0113508Z               "line": 22
2026-06-10T07:08:01.0113790Z             },
2026-06-10T07:08:01.0114066Z             {
2026-06-10T07:08:01.0114457Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0114758Z               "line": 129
2026-06-10T07:08:01.0115034Z             },
2026-06-10T07:08:01.0115323Z             {
2026-06-10T07:08:01.0115703Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0115997Z               "line": 156
2026-06-10T07:08:01.0116279Z             },
2026-06-10T07:08:01.0116565Z             {
2026-06-10T07:08:01.0116951Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0117248Z               "line": 178
2026-06-10T07:08:01.0117524Z             },
2026-06-10T07:08:01.0117795Z             {
2026-06-10T07:08:01.0118188Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0118483Z               "line": 203
2026-06-10T07:08:01.0118765Z             },
2026-06-10T07:08:01.0119108Z             {
2026-06-10T07:08:01.0119489Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0119785Z               "line": 229
2026-06-10T07:08:01.0120057Z             },
2026-06-10T07:08:01.0120338Z             {
2026-06-10T07:08:01.0120719Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0121010Z               "line": 252
2026-06-10T07:08:01.0121292Z             },
2026-06-10T07:08:01.0121573Z             {
2026-06-10T07:08:01.0121964Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.0122398Z               "line": 81
2026-06-10T07:08:01.0122678Z             },
2026-06-10T07:08:01.0122954Z             {
2026-06-10T07:08:01.0123295Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0123595Z               "line": 4309
2026-06-10T07:08:01.0123872Z             },
2026-06-10T07:08:01.0124253Z             {
2026-06-10T07:08:01.0124591Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0124888Z               "line": 4432
2026-06-10T07:08:01.0125169Z             },
2026-06-10T07:08:01.0125446Z             {
2026-06-10T07:08:01.0125779Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0126073Z               "line": 4593
2026-06-10T07:08:01.0126354Z             },
2026-06-10T07:08:01.0126631Z             {
2026-06-10T07:08:01.0126974Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0127269Z               "line": 4975
2026-06-10T07:08:01.0127551Z             }
2026-06-10T07:08:01.0127841Z           ]
2026-06-10T07:08:01.0128113Z         },
2026-06-10T07:08:01.0128403Z         "int": {
2026-06-10T07:08:01.0128700Z           "complete": true,
2026-06-10T07:08:01.0129082Z           "evidence": [
2026-06-10T07:08:01.0129372Z             {
2026-06-10T07:08:01.0129769Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-10T07:08:01.0130073Z               "line": 16
2026-06-10T07:08:01.0130350Z             },
2026-06-10T07:08:01.0130632Z             {
2026-06-10T07:08:01.0130989Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-10T07:08:01.0131284Z               "line": 15
2026-06-10T07:08:01.0131570Z             }
2026-06-10T07:08:01.0131842Z           ]
2026-06-10T07:08:01.0132123Z         },
2026-06-10T07:08:01.0132391Z         "unit": {
2026-06-10T07:08:01.0132696Z           "complete": true,
2026-06-10T07:08:01.0132987Z           "evidence": [
2026-06-10T07:08:01.0133272Z             {
2026-06-10T07:08:01.0133667Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0133970Z               "line": 246
2026-06-10T07:08:01.0134251Z             },
2026-06-10T07:08:01.0134532Z             {
2026-06-10T07:08:01.0134925Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0135219Z               "line": 306
2026-06-10T07:08:01.0135500Z             },
2026-06-10T07:08:01.0135791Z             {
2026-06-10T07:08:01.0136178Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-10T07:08:01.0136472Z               "line": 362
2026-06-10T07:08:01.0136751Z             },
2026-06-10T07:08:01.0137027Z             {
2026-06-10T07:08:01.0137409Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0137709Z               "line": 268
2026-06-10T07:08:01.0137986Z             },
2026-06-10T07:08:01.0138267Z             {
2026-06-10T07:08:01.0138649Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.0139024Z               "line": 291
2026-06-10T07:08:01.0139322Z             },
2026-06-10T07:08:01.0139599Z             {
2026-06-10T07:08:01.0139976Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.0140276Z               "line": 491
2026-06-10T07:08:01.0140552Z             },
2026-06-10T07:08:01.0140835Z             {
2026-06-10T07:08:01.0141168Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0141472Z               "line": 5784
2026-06-10T07:08:01.0141749Z             },
2026-06-10T07:08:01.0142031Z             {
2026-06-10T07:08:01.0142369Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0142655Z               "line": 5908
2026-06-10T07:08:01.0142937Z             },
2026-06-10T07:08:01.0143203Z             {
2026-06-10T07:08:01.0143537Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0143823Z               "line": 6495
2026-06-10T07:08:01.0144103Z             },
2026-06-10T07:08:01.0144382Z             {
2026-06-10T07:08:01.0144721Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0145131Z               "line": 6560
2026-06-10T07:08:01.0145411Z             }
2026-06-10T07:08:01.0145693Z           ]
2026-06-10T07:08:01.0145965Z         }
2026-06-10T07:08:01.0146251Z       }
2026-06-10T07:08:01.0146533Z     },
2026-06-10T07:08:01.0146810Z     {
2026-06-10T07:08:01.0147113Z       "id": "REQ-FRONT-1",
2026-06-10T07:08:01.0147779Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-10T07:08:01.0148094Z       "requiredStages": [],
2026-06-10T07:08:01.0148385Z       "stages": {
2026-06-10T07:08:01.0148661Z         "doc": {
2026-06-10T07:08:01.0149038Z           "complete": false,
2026-06-10T07:08:01.0149334Z           "evidence": []
2026-06-10T07:08:01.0149618Z         },
2026-06-10T07:08:01.0149901Z         "impl": {
2026-06-10T07:08:01.0150202Z           "complete": false,
2026-06-10T07:08:01.0150497Z           "evidence": []
2026-06-10T07:08:01.0150784Z         },
2026-06-10T07:08:01.0151065Z         "int": {
2026-06-10T07:08:01.0151360Z           "complete": false,
2026-06-10T07:08:01.0151671Z           "evidence": []
2026-06-10T07:08:01.0151949Z         },
2026-06-10T07:08:01.0152235Z         "unit": {
2026-06-10T07:08:01.0152543Z           "complete": false,
2026-06-10T07:08:01.0152843Z           "evidence": []
2026-06-10T07:08:01.0153129Z         }
2026-06-10T07:08:01.0153400Z       }
2026-06-10T07:08:01.0153681Z     },
2026-06-10T07:08:01.0153959Z     {
2026-06-10T07:08:01.0154345Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-10T07:08:01.0161630Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-10T07:08:01.0161983Z       "requiredStages": [
2026-06-10T07:08:01.0162259Z         "doc",
2026-06-10T07:08:01.0162551Z         "impl",
2026-06-10T07:08:01.0162819Z         "unit"
2026-06-10T07:08:01.0163083Z       ],
2026-06-10T07:08:01.0163364Z       "stages": {
2026-06-10T07:08:01.0163641Z         "doc": {
2026-06-10T07:08:01.0163936Z           "complete": true,
2026-06-10T07:08:01.0164227Z           "evidence": [
2026-06-10T07:08:01.0164514Z             {
2026-06-10T07:08:01.0164857Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0165152Z               "line": 288
2026-06-10T07:08:01.0165455Z             }
2026-06-10T07:08:01.0165732Z           ]
2026-06-10T07:08:01.0166018Z         },
2026-06-10T07:08:01.0166295Z         "impl": {
2026-06-10T07:08:01.0166605Z           "complete": true,
2026-06-10T07:08:01.0166895Z           "evidence": [
2026-06-10T07:08:01.0167171Z             {
2026-06-10T07:08:01.0167539Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.0167859Z               "line": 583
2026-06-10T07:08:01.0168133Z             },
2026-06-10T07:08:01.0168417Z             {
2026-06-10T07:08:01.0168794Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.0169172Z               "line": 787
2026-06-10T07:08:01.0169452Z             },
2026-06-10T07:08:01.0169728Z             {
2026-06-10T07:08:01.0170121Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0170411Z               "line": 23
2026-06-10T07:08:01.0170681Z             },
2026-06-10T07:08:01.0170955Z             {
2026-06-10T07:08:01.0171351Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0171781Z               "line": 101
2026-06-10T07:08:01.0172062Z             },
2026-06-10T07:08:01.0172377Z             {
2026-06-10T07:08:01.0172777Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0173073Z               "line": 146
2026-06-10T07:08:01.0173355Z             },
2026-06-10T07:08:01.0173639Z             {
2026-06-10T07:08:01.0174130Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0174431Z               "line": 194
2026-06-10T07:08:01.0174712Z             },
2026-06-10T07:08:01.0174998Z             {
2026-06-10T07:08:01.0175388Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0175689Z               "line": 226
2026-06-10T07:08:01.0175969Z             },
2026-06-10T07:08:01.0176254Z             {
2026-06-10T07:08:01.0176654Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0176940Z               "line": 240
2026-06-10T07:08:01.0177226Z             },
2026-06-10T07:08:01.0177513Z             {
2026-06-10T07:08:01.0177912Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0178208Z               "line": 300
2026-06-10T07:08:01.0178495Z             },
2026-06-10T07:08:01.0178779Z             {
2026-06-10T07:08:01.0179263Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0179573Z               "line": 413
2026-06-10T07:08:01.0179850Z             },
2026-06-10T07:08:01.0180141Z             {
2026-06-10T07:08:01.0180517Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0180808Z               "line": 111
2026-06-10T07:08:01.0181090Z             },
2026-06-10T07:08:01.0181365Z             {
2026-06-10T07:08:01.0181750Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0182046Z               "line": 296
2026-06-10T07:08:01.0182327Z             },
2026-06-10T07:08:01.0182604Z             {
2026-06-10T07:08:01.0182994Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0183290Z               "line": 690
2026-06-10T07:08:01.0183562Z             },
2026-06-10T07:08:01.0183843Z             {
2026-06-10T07:08:01.0184204Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0184489Z               "line": 181
2026-06-10T07:08:01.0184766Z             },
2026-06-10T07:08:01.0185042Z             {
2026-06-10T07:08:01.0185424Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0185715Z               "line": 223
2026-06-10T07:08:01.0185992Z             },
2026-06-10T07:08:01.0186258Z             {
2026-06-10T07:08:01.0186627Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0187004Z               "line": 234
2026-06-10T07:08:01.0187285Z             },
2026-06-10T07:08:01.0187567Z             {
2026-06-10T07:08:01.0187943Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0188234Z               "line": 260
2026-06-10T07:08:01.0188501Z             },
2026-06-10T07:08:01.0188773Z             {
2026-06-10T07:08:01.0189234Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-10T07:08:01.0189528Z               "line": 63
2026-06-10T07:08:01.0189814Z             },
2026-06-10T07:08:01.0190086Z             {
2026-06-10T07:08:01.0190425Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0190720Z               "line": 1334
2026-06-10T07:08:01.0191002Z             }
2026-06-10T07:08:01.0191284Z           ]
2026-06-10T07:08:01.0191551Z         },
2026-06-10T07:08:01.0191825Z         "int": {
2026-06-10T07:08:01.0192118Z           "complete": false,
2026-06-10T07:08:01.0192423Z           "evidence": []
2026-06-10T07:08:01.0192700Z         },
2026-06-10T07:08:01.0192986Z         "unit": {
2026-06-10T07:08:01.0193291Z           "complete": true,
2026-06-10T07:08:01.0193583Z           "evidence": [
2026-06-10T07:08:01.0193864Z             {
2026-06-10T07:08:01.0194259Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.0194673Z               "line": 486
2026-06-10T07:08:01.0194950Z             },
2026-06-10T07:08:01.0195236Z             {
2026-06-10T07:08:01.0195631Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0195922Z               "line": 463
2026-06-10T07:08:01.0196214Z             },
2026-06-10T07:08:01.0196485Z             {
2026-06-10T07:08:01.0197099Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0197516Z               "line": 490
2026-06-10T07:08:01.0197798Z             },
2026-06-10T07:08:01.0198070Z             {
2026-06-10T07:08:01.0198474Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0198762Z               "line": 525
2026-06-10T07:08:01.0199132Z             },
2026-06-10T07:08:01.0199414Z             {
2026-06-10T07:08:01.0199813Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0200112Z               "line": 590
2026-06-10T07:08:01.0200393Z             },
2026-06-10T07:08:01.0200688Z             {
2026-06-10T07:08:01.0201084Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0201380Z               "line": 603
2026-06-10T07:08:01.0201661Z             },
2026-06-10T07:08:01.0201961Z             {
2026-06-10T07:08:01.0202342Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0202687Z               "line": 1003
2026-06-10T07:08:01.0202950Z             },
2026-06-10T07:08:01.0203237Z             {
2026-06-10T07:08:01.0203613Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T07:08:01.0203909Z               "line": 142
2026-06-10T07:08:01.0204181Z             },
2026-06-10T07:08:01.0204462Z             {
2026-06-10T07:08:01.0204843Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T07:08:01.0205129Z               "line": 221
2026-06-10T07:08:01.0205410Z             },
2026-06-10T07:08:01.0205876Z             {
2026-06-10T07:08:01.0206302Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-10T07:08:01.0206631Z               "line": 319
2026-06-10T07:08:01.0206918Z             },
2026-06-10T07:08:01.0207212Z             {
2026-06-10T07:08:01.0207607Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-10T07:08:01.0207886Z               "line": 17
2026-06-10T07:08:01.0208167Z             },
2026-06-10T07:08:01.0208467Z             {
2026-06-10T07:08:01.0208854Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-10T07:08:01.0209236Z               "line": 88
2026-06-10T07:08:01.0209518Z             }
2026-06-10T07:08:01.0209799Z           ]
2026-06-10T07:08:01.0210090Z         }
2026-06-10T07:08:01.0210364Z       }
2026-06-10T07:08:01.0210643Z     },
2026-06-10T07:08:01.0210920Z     {
2026-06-10T07:08:01.0211286Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-10T07:08:01.0211835Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-10T07:08:01.0212140Z       "requiredStages": [
2026-06-10T07:08:01.0212441Z         "impl",
2026-06-10T07:08:01.0212729Z         "unit"
2026-06-10T07:08:01.0213012Z       ],
2026-06-10T07:08:01.0213301Z       "stages": {
2026-06-10T07:08:01.0213586Z         "doc": {
2026-06-10T07:08:01.0213891Z           "complete": false,
2026-06-10T07:08:01.0214187Z           "evidence": []
2026-06-10T07:08:01.0214469Z         },
2026-06-10T07:08:01.0214764Z         "impl": {
2026-06-10T07:08:01.0215074Z           "complete": true,
2026-06-10T07:08:01.0215365Z           "evidence": [
2026-06-10T07:08:01.0215638Z             {
2026-06-10T07:08:01.0216051Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.0216333Z               "line": 149
2026-06-10T07:08:01.0216624Z             },
2026-06-10T07:08:01.0216900Z             {
2026-06-10T07:08:01.0217286Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:01.0217582Z               "line": 18
2026-06-10T07:08:01.0217868Z             },
2026-06-10T07:08:01.0232198Z             {
2026-06-10T07:08:01.0232774Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:01.0233074Z               "line": 98
2026-06-10T07:08:01.0233356Z             }
2026-06-10T07:08:01.0233641Z           ]
2026-06-10T07:08:01.0233923Z         },
2026-06-10T07:08:01.0234204Z         "int": {
2026-06-10T07:08:01.0234512Z           "complete": false,
2026-06-10T07:08:01.0235246Z           "evidence": []
2026-06-10T07:08:01.0235556Z         },
2026-06-10T07:08:01.0235841Z         "unit": {
2026-06-10T07:08:01.0236137Z           "complete": true,
2026-06-10T07:08:01.0236443Z           "evidence": [
2026-06-10T07:08:01.0236735Z             {
2026-06-10T07:08:01.0237138Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.0237429Z               "line": 565
2026-06-10T07:08:01.0237715Z             },
2026-06-10T07:08:01.0237978Z             {
2026-06-10T07:08:01.0238340Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:01.0238636Z               "line": 159
2026-06-10T07:08:01.0238932Z             },
2026-06-10T07:08:01.0239325Z             {
2026-06-10T07:08:01.0239691Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:01.0239986Z               "line": 231
2026-06-10T07:08:01.0240263Z             }
2026-06-10T07:08:01.0240540Z           ]
2026-06-10T07:08:01.0240820Z         }
2026-06-10T07:08:01.0241096Z       }
2026-06-10T07:08:01.0241383Z     },
2026-06-10T07:08:01.0241654Z     {
2026-06-10T07:08:01.0242021Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-10T07:08:01.0243426Z       "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-10T07:08:01.0243745Z       "requiredStages": [
2026-06-10T07:08:01.0244032Z         "impl",
2026-06-10T07:08:01.0244317Z         "unit"
2026-06-10T07:08:01.0244649Z       ],
2026-06-10T07:08:01.0244928Z       "stages": {
2026-06-10T07:08:01.0245214Z         "doc": {
2026-06-10T07:08:01.0245514Z           "complete": true,
2026-06-10T07:08:01.0245820Z           "evidence": [
2026-06-10T07:08:01.0246101Z             {
2026-06-10T07:08:01.0246450Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0246749Z               "line": 220
2026-06-10T07:08:01.0247031Z             }
2026-06-10T07:08:01.0247328Z           ]
2026-06-10T07:08:01.0247603Z         },
2026-06-10T07:08:01.0247898Z         "impl": {
2026-06-10T07:08:01.0248209Z           "complete": true,
2026-06-10T07:08:01.0248499Z           "evidence": [
2026-06-10T07:08:01.0248775Z             {
2026-06-10T07:08:01.0249238Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.0249563Z               "line": 302
2026-06-10T07:08:01.0249838Z             },
2026-06-10T07:08:01.0250121Z             {
2026-06-10T07:08:01.0250504Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.0250795Z               "line": 257
2026-06-10T07:08:01.0251071Z             },
2026-06-10T07:08:01.0251347Z             {
2026-06-10T07:08:01.0251744Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.0252040Z               "line": 405
2026-06-10T07:08:01.0252316Z             },
2026-06-10T07:08:01.0252599Z             {
2026-06-10T07:08:01.0252969Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T07:08:01.0253270Z               "line": 77
2026-06-10T07:08:01.0253555Z             }
2026-06-10T07:08:01.0253837Z           ]
2026-06-10T07:08:01.0254124Z         },
2026-06-10T07:08:01.0254405Z         "int": {
2026-06-10T07:08:01.0254715Z           "complete": false,
2026-06-10T07:08:01.0254997Z           "evidence": []
2026-06-10T07:08:01.0255271Z         },
2026-06-10T07:08:01.0255556Z         "unit": {
2026-06-10T07:08:01.0255865Z           "complete": true,
2026-06-10T07:08:01.0256156Z           "evidence": [
2026-06-10T07:08:01.0256432Z             {
2026-06-10T07:08:01.0256829Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.0257119Z               "line": 478
2026-06-10T07:08:01.0257531Z             },
2026-06-10T07:08:01.0257807Z             {
2026-06-10T07:08:01.0258196Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.0258493Z               "line": 516
2026-06-10T07:08:01.0258764Z             },
2026-06-10T07:08:01.0259136Z             {
2026-06-10T07:08:01.0259612Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T07:08:01.0259917Z               "line": 166
2026-06-10T07:08:01.0260198Z             }
2026-06-10T07:08:01.0260477Z           ]
2026-06-10T07:08:01.0260754Z         }
2026-06-10T07:08:01.0261020Z       }
2026-06-10T07:08:01.0261306Z     },
2026-06-10T07:08:01.0261577Z     {
2026-06-10T07:08:01.0261965Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-10T07:08:01.0263725Z       "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-10T07:08:01.0264054Z       "requiredStages": [
2026-06-10T07:08:01.0264346Z         "impl",
2026-06-10T07:08:01.0264622Z         "unit"
2026-06-10T07:08:01.0264903Z       ],
2026-06-10T07:08:01.0265185Z       "stages": {
2026-06-10T07:08:01.0265467Z         "doc": {
2026-06-10T07:08:01.0265764Z           "complete": false,
2026-06-10T07:08:01.0266072Z           "evidence": []
2026-06-10T07:08:01.0266358Z         },
2026-06-10T07:08:01.0266640Z         "impl": {
2026-06-10T07:08:01.0266941Z           "complete": true,
2026-06-10T07:08:01.0267236Z           "evidence": [
2026-06-10T07:08:01.0267522Z             {
2026-06-10T07:08:01.0267918Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T07:08:01.0268213Z               "line": 22
2026-06-10T07:08:01.0268499Z             },
2026-06-10T07:08:01.0268776Z             {
2026-06-10T07:08:01.0269237Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.0269537Z               "line": 479
2026-06-10T07:08:01.0269857Z             },
2026-06-10T07:08:01.0270134Z             {
2026-06-10T07:08:01.0270506Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T07:08:01.0270810Z               "line": 17
2026-06-10T07:08:01.0271084Z             },
2026-06-10T07:08:01.0271371Z             {
2026-06-10T07:08:01.0271761Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T07:08:01.0272057Z               "line": 140
2026-06-10T07:08:01.0272344Z             },
2026-06-10T07:08:01.0272615Z             {
2026-06-10T07:08:01.0273025Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.0273315Z               "line": 194
2026-06-10T07:08:01.0273606Z             },
2026-06-10T07:08:01.0273881Z             {
2026-06-10T07:08:01.0274290Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.0274586Z               "line": 219
2026-06-10T07:08:01.0274858Z             },
2026-06-10T07:08:01.0275139Z             {
2026-06-10T07:08:01.0275544Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.0275840Z               "line": 245
2026-06-10T07:08:01.0276107Z             },
2026-06-10T07:08:01.0276383Z             {
2026-06-10T07:08:01.0276762Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.0277039Z               "line": 124
2026-06-10T07:08:01.0277320Z             },
2026-06-10T07:08:01.0277596Z             {
2026-06-10T07:08:01.0277974Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.0278249Z               "line": 224
2026-06-10T07:08:01.0278525Z             }
2026-06-10T07:08:01.0278798Z           ]
2026-06-10T07:08:01.0279135Z         },
2026-06-10T07:08:01.0279416Z         "int": {
2026-06-10T07:08:01.0279708Z           "complete": false,
2026-06-10T07:08:01.0279993Z           "evidence": []
2026-06-10T07:08:01.0280275Z         },
2026-06-10T07:08:01.0280552Z         "unit": {
2026-06-10T07:08:01.0280852Z           "complete": true,
2026-06-10T07:08:01.0281281Z           "evidence": [
2026-06-10T07:08:01.0281561Z             {
2026-06-10T07:08:01.0281950Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T07:08:01.0282241Z               "line": 62
2026-06-10T07:08:01.0282513Z             },
2026-06-10T07:08:01.0282790Z             {
2026-06-10T07:08:01.0283275Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T07:08:01.0283561Z               "line": 72
2026-06-10T07:08:01.0283837Z             },
2026-06-10T07:08:01.0284111Z             {
2026-06-10T07:08:01.0284502Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-10T07:08:01.0284794Z               "line": 84
2026-06-10T07:08:01.0285342Z             },
2026-06-10T07:08:01.0285704Z             {
2026-06-10T07:08:01.0286085Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T07:08:01.0286404Z               "line": 346
2026-06-10T07:08:01.0286687Z             },
2026-06-10T07:08:01.0286966Z             {
2026-06-10T07:08:01.0287361Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T07:08:01.0287647Z               "line": 274
2026-06-10T07:08:01.0287923Z             },
2026-06-10T07:08:01.0288180Z             {
2026-06-10T07:08:01.0288567Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T07:08:01.0288858Z               "line": 315
2026-06-10T07:08:01.0289239Z             },
2026-06-10T07:08:01.0289525Z             {
2026-06-10T07:08:01.0289906Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-10T07:08:01.0290201Z               "line": 353
2026-06-10T07:08:01.0290478Z             },
2026-06-10T07:08:01.0290764Z             {
2026-06-10T07:08:01.0291169Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.0291470Z               "line": 656
2026-06-10T07:08:01.0291751Z             },
2026-06-10T07:08:01.0292031Z             {
2026-06-10T07:08:01.0292415Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.0292700Z               "line": 397
2026-06-10T07:08:01.0292992Z             },
2026-06-10T07:08:01.0293272Z             {
2026-06-10T07:08:01.0293669Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.0293970Z               "line": 440
2026-06-10T07:08:01.0294256Z             }
2026-06-10T07:08:01.0294537Z           ]
2026-06-10T07:08:01.0294817Z         }
2026-06-10T07:08:01.0295119Z       }
2026-06-10T07:08:01.0295510Z     },
2026-06-10T07:08:01.0295824Z     {
2026-06-10T07:08:01.0296193Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-10T07:08:01.0296890Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-10T07:08:01.0297214Z       "requiredStages": [
2026-06-10T07:08:01.0297503Z         "impl",
2026-06-10T07:08:01.0297786Z         "unit"
2026-06-10T07:08:01.0298062Z       ],
2026-06-10T07:08:01.0298353Z       "stages": {
2026-06-10T07:08:01.0298639Z         "doc": {
2026-06-10T07:08:01.0299031Z           "complete": false,
2026-06-10T07:08:01.0299317Z           "evidence": []
2026-06-10T07:08:01.0299608Z         },
2026-06-10T07:08:01.0299893Z         "impl": {
2026-06-10T07:08:01.0300189Z           "complete": true,
2026-06-10T07:08:01.0300485Z           "evidence": [
2026-06-10T07:08:01.0300762Z             {
2026-06-10T07:08:01.0301138Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T07:08:01.0301433Z               "line": 169
2026-06-10T07:08:01.0301710Z             }
2026-06-10T07:08:01.0301973Z           ]
2026-06-10T07:08:01.0302253Z         },
2026-06-10T07:08:01.0302529Z         "int": {
2026-06-10T07:08:01.0302827Z           "complete": true,
2026-06-10T07:08:01.0303117Z           "evidence": [
2026-06-10T07:08:01.0303399Z             {
2026-06-10T07:08:01.0303765Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-10T07:08:01.0304062Z               "line": 44
2026-06-10T07:08:01.0304343Z             },
2026-06-10T07:08:01.0304634Z             {
2026-06-10T07:08:01.0305005Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-10T07:08:01.0305428Z               "line": 66
2026-06-10T07:08:01.0305713Z             }
2026-06-10T07:08:01.0305984Z           ]
2026-06-10T07:08:01.0306262Z         },
2026-06-10T07:08:01.0306543Z         "unit": {
2026-06-10T07:08:01.0306843Z           "complete": true,
2026-06-10T07:08:01.0307140Z           "evidence": [
2026-06-10T07:08:01.0307515Z             {
2026-06-10T07:08:01.0307891Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T07:08:01.0308184Z               "line": 186
2026-06-10T07:08:01.0308467Z             },
2026-06-10T07:08:01.0308743Z             {
2026-06-10T07:08:01.0309233Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T07:08:01.0309528Z               "line": 238
2026-06-10T07:08:01.0309801Z             },
2026-06-10T07:08:01.0310082Z             {
2026-06-10T07:08:01.0310444Z               "path": "crates/spt-term/src/reader.rs",
2026-06-10T07:08:01.0310739Z               "line": 266
2026-06-10T07:08:01.0311016Z             }
2026-06-10T07:08:01.0311312Z           ]
2026-06-10T07:08:01.0311588Z         }
2026-06-10T07:08:01.0311859Z       }
2026-06-10T07:08:01.0312136Z     },
2026-06-10T07:08:01.0312408Z     {
2026-06-10T07:08:01.0312785Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-10T07:08:01.0314102Z       "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-10T07:08:01.0314412Z       "requiredStages": [
2026-06-10T07:08:01.0314693Z         "impl",
2026-06-10T07:08:01.0314965Z         "unit",
2026-06-10T07:08:01.0315256Z         "int"
2026-06-10T07:08:01.0315556Z       ],
2026-06-10T07:08:01.0315833Z       "stages": {
2026-06-10T07:08:01.0316118Z         "doc": {
2026-06-10T07:08:01.0316469Z           "complete": false,
2026-06-10T07:08:01.0316778Z           "evidence": []
2026-06-10T07:08:01.0317056Z         },
2026-06-10T07:08:01.0317337Z         "impl": {
2026-06-10T07:08:01.0317633Z           "complete": true,
2026-06-10T07:08:01.0317928Z           "evidence": [
2026-06-10T07:08:01.0318209Z             {
2026-06-10T07:08:01.0318608Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.0318907Z               "line": 150
2026-06-10T07:08:01.0319270Z             },
2026-06-10T07:08:01.0319550Z             {
2026-06-10T07:08:01.0319946Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.0320233Z               "line": 174
2026-06-10T07:08:01.0320505Z             },
2026-06-10T07:08:01.0320785Z             {
2026-06-10T07:08:01.0321178Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.0321470Z               "line": 79
2026-06-10T07:08:01.0321757Z             },
2026-06-10T07:08:01.0325106Z             {
2026-06-10T07:08:01.0325501Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.0325792Z               "line": 51
2026-06-10T07:08:01.0326078Z             },
2026-06-10T07:08:01.0326365Z             {
2026-06-10T07:08:01.0326748Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0327049Z               "line": 154
2026-06-10T07:08:01.0327325Z             },
2026-06-10T07:08:01.0327611Z             {
2026-06-10T07:08:01.0327992Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0328298Z               "line": 27
2026-06-10T07:08:01.0328584Z             },
2026-06-10T07:08:01.0328866Z             {
2026-06-10T07:08:01.0329395Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0329681Z               "line": 79
2026-06-10T07:08:01.0329963Z             },
2026-06-10T07:08:01.0330239Z             {
2026-06-10T07:08:01.0330630Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0330931Z               "line": 102
2026-06-10T07:08:01.0331211Z             },
2026-06-10T07:08:01.0331498Z             {
2026-06-10T07:08:01.0331883Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0332179Z               "line": 116
2026-06-10T07:08:01.0332612Z             }
2026-06-10T07:08:01.0332889Z           ]
2026-06-10T07:08:01.0333171Z         },
2026-06-10T07:08:01.0333452Z         "int": {
2026-06-10T07:08:01.0333762Z           "complete": true,
2026-06-10T07:08:01.0334058Z           "evidence": [
2026-06-10T07:08:01.0334342Z             {
2026-06-10T07:08:01.0334845Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-10T07:08:01.0335146Z               "line": 35
2026-06-10T07:08:01.0335432Z             }
2026-06-10T07:08:01.0335704Z           ]
2026-06-10T07:08:01.0335985Z         },
2026-06-10T07:08:01.0336267Z         "unit": {
2026-06-10T07:08:01.0336577Z           "complete": true,
2026-06-10T07:08:01.0336864Z           "evidence": [
2026-06-10T07:08:01.0337147Z             {
2026-06-10T07:08:01.0337542Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.0337842Z               "line": 584
2026-06-10T07:08:01.0338124Z             },
2026-06-10T07:08:01.0338404Z             {
2026-06-10T07:08:01.0338772Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0339149Z               "line": 351
2026-06-10T07:08:01.0339426Z             },
2026-06-10T07:08:01.0339714Z             {
2026-06-10T07:08:01.0340089Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0340385Z               "line": 124
2026-06-10T07:08:01.0340656Z             },
2026-06-10T07:08:01.0340937Z             {
2026-06-10T07:08:01.0341320Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0341610Z               "line": 143
2026-06-10T07:08:01.0341882Z             },
2026-06-10T07:08:01.0342149Z             {
2026-06-10T07:08:01.0342533Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0342824Z               "line": 160
2026-06-10T07:08:01.0343105Z             },
2026-06-10T07:08:01.0343383Z             {
2026-06-10T07:08:01.0343768Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0344074Z               "line": 187
2026-06-10T07:08:01.0344345Z             },
2026-06-10T07:08:01.0344631Z             {
2026-06-10T07:08:01.0345005Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-10T07:08:01.0345305Z               "line": 206
2026-06-10T07:08:01.0345597Z             },
2026-06-10T07:08:01.0345869Z             {
2026-06-10T07:08:01.0346259Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0346550Z               "line": 229
2026-06-10T07:08:01.0346832Z             }
2026-06-10T07:08:01.0347105Z           ]
2026-06-10T07:08:01.0347380Z         }
2026-06-10T07:08:01.0347660Z       }
2026-06-10T07:08:01.0347934Z     },
2026-06-10T07:08:01.0348211Z     {
2026-06-10T07:08:01.0348582Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-10T07:08:01.0350782Z       "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-10T07:08:01.0351111Z       "requiredStages": [
2026-06-10T07:08:01.0351393Z         "impl",
2026-06-10T07:08:01.0351679Z         "unit"
2026-06-10T07:08:01.0351951Z       ],
2026-06-10T07:08:01.0352242Z       "stages": {
2026-06-10T07:08:01.0352528Z         "doc": {
2026-06-10T07:08:01.0352853Z           "complete": false,
2026-06-10T07:08:01.0353151Z           "evidence": []
2026-06-10T07:08:01.0353413Z         },
2026-06-10T07:08:01.0353699Z         "impl": {
2026-06-10T07:08:01.0353994Z           "complete": true,
2026-06-10T07:08:01.0354291Z           "evidence": [
2026-06-10T07:08:01.0354557Z             {
2026-06-10T07:08:01.0354949Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0355244Z               "line": 327
2026-06-10T07:08:01.0355523Z             },
2026-06-10T07:08:01.0355809Z             {
2026-06-10T07:08:01.0356185Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0356590Z               "line": 504
2026-06-10T07:08:01.0356867Z             }
2026-06-10T07:08:01.0357172Z           ]
2026-06-10T07:08:01.0357463Z         },
2026-06-10T07:08:01.0357744Z         "int": {
2026-06-10T07:08:01.0358045Z           "complete": false,
2026-06-10T07:08:01.0358376Z           "evidence": []
2026-06-10T07:08:01.0358672Z         },
2026-06-10T07:08:01.0359143Z         "unit": {
2026-06-10T07:08:01.0359443Z           "complete": true,
2026-06-10T07:08:01.0359758Z           "evidence": [
2026-06-10T07:08:01.0360034Z             {
2026-06-10T07:08:01.0360435Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-10T07:08:01.0360725Z               "line": 161
2026-06-10T07:08:01.0361004Z             }
2026-06-10T07:08:01.0361277Z           ]
2026-06-10T07:08:01.0361558Z         }
2026-06-10T07:08:01.0361844Z       }
2026-06-10T07:08:01.0362135Z     },
2026-06-10T07:08:01.0362406Z     {
2026-06-10T07:08:01.0362721Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-10T07:08:01.0363311Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-10T07:08:01.0363616Z       "requiredStages": [
2026-06-10T07:08:01.0363906Z         "impl",
2026-06-10T07:08:01.0364189Z         "unit"
2026-06-10T07:08:01.0364455Z       ],
2026-06-10T07:08:01.0364751Z       "stages": {
2026-06-10T07:08:01.0365043Z         "doc": {
2026-06-10T07:08:01.0365343Z           "complete": false,
2026-06-10T07:08:01.0365639Z           "evidence": []
2026-06-10T07:08:01.0365917Z         },
2026-06-10T07:08:01.0366201Z         "impl": {
2026-06-10T07:08:01.0366502Z           "complete": true,
2026-06-10T07:08:01.0366788Z           "evidence": [
2026-06-10T07:08:01.0367070Z             {
2026-06-10T07:08:01.0367450Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0367741Z               "line": 40
2026-06-10T07:08:01.0368018Z             },
2026-06-10T07:08:01.0368300Z             {
2026-06-10T07:08:01.0368666Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0369054Z               "line": 100
2026-06-10T07:08:01.0369336Z             },
2026-06-10T07:08:01.0369613Z             {
2026-06-10T07:08:01.0369975Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0370266Z               "line": 215
2026-06-10T07:08:01.0370561Z             },
2026-06-10T07:08:01.0370843Z             {
2026-06-10T07:08:01.0371219Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0371508Z               "line": 314
2026-06-10T07:08:01.0371794Z             }
2026-06-10T07:08:01.0372075Z           ]
2026-06-10T07:08:01.0372508Z         },
2026-06-10T07:08:01.0372799Z         "int": {
2026-06-10T07:08:01.0373100Z           "complete": false,
2026-06-10T07:08:01.0373405Z           "evidence": []
2026-06-10T07:08:01.0373697Z         },
2026-06-10T07:08:01.0373983Z         "unit": {
2026-06-10T07:08:01.0374286Z           "complete": true,
2026-06-10T07:08:01.0374586Z           "evidence": [
2026-06-10T07:08:01.0374877Z             {
2026-06-10T07:08:01.0375240Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0375540Z               "line": 352
2026-06-10T07:08:01.0375816Z             },
2026-06-10T07:08:01.0376102Z             {
2026-06-10T07:08:01.0376463Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0376752Z               "line": 409
2026-06-10T07:08:01.0377043Z             },
2026-06-10T07:08:01.0377334Z             {
2026-06-10T07:08:01.0377710Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0378001Z               "line": 458
2026-06-10T07:08:01.0378288Z             },
2026-06-10T07:08:01.0378564Z             {
2026-06-10T07:08:01.0378936Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0379316Z               "line": 479
2026-06-10T07:08:01.0379596Z             }
2026-06-10T07:08:01.0379872Z           ]
2026-06-10T07:08:01.0380149Z         }
2026-06-10T07:08:01.0380435Z       }
2026-06-10T07:08:01.0380926Z     },
2026-06-10T07:08:01.0381207Z     {
2026-06-10T07:08:01.0381579Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-10T07:08:01.0381974Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-10T07:08:01.0382281Z       "requiredStages": [
2026-06-10T07:08:01.0382563Z         "impl",
2026-06-10T07:08:01.0382843Z         "unit"
2026-06-10T07:08:01.0383226Z       ],
2026-06-10T07:08:01.0383521Z       "stages": {
2026-06-10T07:08:01.0383836Z         "doc": {
2026-06-10T07:08:01.0384136Z           "complete": false,
2026-06-10T07:08:01.0384437Z           "evidence": []
2026-06-10T07:08:01.0384707Z         },
2026-06-10T07:08:01.0384994Z         "impl": {
2026-06-10T07:08:01.0385290Z           "complete": true,
2026-06-10T07:08:01.0385581Z           "evidence": [
2026-06-10T07:08:01.0385867Z             {
2026-06-10T07:08:01.0386234Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0386530Z               "line": 113
2026-06-10T07:08:01.0386812Z             },
2026-06-10T07:08:01.0387100Z             {
2026-06-10T07:08:01.0387466Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0387746Z               "line": 208
2026-06-10T07:08:01.0388023Z             }
2026-06-10T07:08:01.0388289Z           ]
2026-06-10T07:08:01.0388781Z         },
2026-06-10T07:08:01.0389129Z         "int": {
2026-06-10T07:08:01.0389439Z           "complete": false,
2026-06-10T07:08:01.0389735Z           "evidence": []
2026-06-10T07:08:01.0390015Z         },
2026-06-10T07:08:01.0390294Z         "unit": {
2026-06-10T07:08:01.0390585Z           "complete": true,
2026-06-10T07:08:01.0390875Z           "evidence": [
2026-06-10T07:08:01.0391152Z             {
2026-06-10T07:08:01.0391524Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0391810Z               "line": 373
2026-06-10T07:08:01.0392082Z             },
2026-06-10T07:08:01.0392353Z             {
2026-06-10T07:08:01.0392723Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0393023Z               "line": 436
2026-06-10T07:08:01.0393295Z             }
2026-06-10T07:08:01.0393567Z           ]
2026-06-10T07:08:01.0393834Z         }
2026-06-10T07:08:01.0394105Z       }
2026-06-10T07:08:01.0394377Z     },
2026-06-10T07:08:01.0394649Z     {
2026-06-10T07:08:01.0395026Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-10T07:08:01.0398234Z       "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-10T07:08:01.0398607Z       "requiredStages": [
2026-06-10T07:08:01.0398888Z         "impl",
2026-06-10T07:08:01.0399247Z         "unit"
2026-06-10T07:08:01.0399522Z       ],
2026-06-10T07:08:01.0399803Z       "stages": {
2026-06-10T07:08:01.0400085Z         "doc": {
2026-06-10T07:08:01.0400394Z           "complete": true,
2026-06-10T07:08:01.0400678Z           "evidence": [
2026-06-10T07:08:01.0400965Z             {
2026-06-10T07:08:01.0401303Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0401603Z               "line": 206
2026-06-10T07:08:01.0401870Z             }
2026-06-10T07:08:01.0402152Z           ]
2026-06-10T07:08:01.0402452Z         },
2026-06-10T07:08:01.0402739Z         "impl": {
2026-06-10T07:08:01.0403041Z           "complete": true,
2026-06-10T07:08:01.0403334Z           "evidence": [
2026-06-10T07:08:01.0403621Z             {
2026-06-10T07:08:01.0404002Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0404302Z               "line": 593
2026-06-10T07:08:01.0404574Z             },
2026-06-10T07:08:01.0404861Z             {
2026-06-10T07:08:01.0405247Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0405543Z               "line": 685
2026-06-10T07:08:01.0405837Z             },
2026-06-10T07:08:01.0406242Z             {
2026-06-10T07:08:01.0406639Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.0406930Z               "line": 183
2026-06-10T07:08:01.0407269Z             }
2026-06-10T07:08:01.0407574Z           ]
2026-06-10T07:08:01.0407845Z         },
2026-06-10T07:08:01.0408135Z         "int": {
2026-06-10T07:08:01.0408566Z           "complete": false,
2026-06-10T07:08:01.0409052Z           "evidence": []
2026-06-10T07:08:01.0409334Z         },
2026-06-10T07:08:01.0409625Z         "unit": {
2026-06-10T07:08:01.0409930Z           "complete": true,
2026-06-10T07:08:01.0410221Z           "evidence": [
2026-06-10T07:08:01.0410498Z             {
2026-06-10T07:08:01.0410879Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0411177Z               "line": 734
2026-06-10T07:08:01.0411453Z             },
2026-06-10T07:08:01.0411734Z             {
2026-06-10T07:08:01.0412130Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-10T07:08:01.0412416Z               "line": 44
2026-06-10T07:08:01.0412703Z             },
2026-06-10T07:08:01.0412974Z             {
2026-06-10T07:08:01.0413342Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-10T07:08:01.0413626Z               "line": 54
2026-06-10T07:08:01.0413904Z             },
2026-06-10T07:08:01.0414171Z             {
2026-06-10T07:08:01.0414587Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-10T07:08:01.0414877Z               "line": 51
2026-06-10T07:08:01.0415154Z             }
2026-06-10T07:08:01.0415426Z           ]
2026-06-10T07:08:01.0415697Z         }
2026-06-10T07:08:01.0415979Z       }
2026-06-10T07:08:01.0416247Z     },
2026-06-10T07:08:01.0416526Z     {
2026-06-10T07:08:01.0416908Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-10T07:08:01.0417580Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-10T07:08:01.0417890Z       "requiredStages": [
2026-06-10T07:08:01.0418181Z         "impl",
2026-06-10T07:08:01.0418459Z         "unit"
2026-06-10T07:08:01.0418737Z       ],
2026-06-10T07:08:01.0419103Z       "stages": {
2026-06-10T07:08:01.0419388Z         "doc": {
2026-06-10T07:08:01.0419689Z           "complete": false,
2026-06-10T07:08:01.0419984Z           "evidence": []
2026-06-10T07:08:01.0420265Z         },
2026-06-10T07:08:01.0420562Z         "impl": {
2026-06-10T07:08:01.0420867Z           "complete": true,
2026-06-10T07:08:01.0421157Z           "evidence": [
2026-06-10T07:08:01.0421444Z             {
2026-06-10T07:08:01.0421817Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0422108Z               "line": 26
2026-06-10T07:08:01.0422389Z             },
2026-06-10T07:08:01.0422667Z             {
2026-06-10T07:08:01.0423037Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0423329Z               "line": 135
2026-06-10T07:08:01.0423611Z             },
2026-06-10T07:08:01.0423887Z             {
2026-06-10T07:08:01.0424295Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T07:08:01.0424589Z               "line": 26
2026-06-10T07:08:01.0425122Z             },
2026-06-10T07:08:01.0425413Z             {
2026-06-10T07:08:01.0425810Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T07:08:01.0426111Z               "line": 237
2026-06-10T07:08:01.0426396Z             }
2026-06-10T07:08:01.0426677Z           ]
2026-06-10T07:08:01.0426962Z         },
2026-06-10T07:08:01.0427239Z         "int": {
2026-06-10T07:08:01.0427549Z           "complete": false,
2026-06-10T07:08:01.0427840Z           "evidence": []
2026-06-10T07:08:01.0428131Z         },
2026-06-10T07:08:01.0428403Z         "unit": {
2026-06-10T07:08:01.0428709Z           "complete": true,
2026-06-10T07:08:01.0429094Z           "evidence": [
2026-06-10T07:08:01.0429360Z             {
2026-06-10T07:08:01.0429735Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0430021Z               "line": 161
2026-06-10T07:08:01.0430426Z             },
2026-06-10T07:08:01.0430698Z             {
2026-06-10T07:08:01.0431074Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0431370Z               "line": 170
2026-06-10T07:08:01.0431633Z             },
2026-06-10T07:08:01.0431914Z             {
2026-06-10T07:08:01.0432377Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0432673Z               "line": 179
2026-06-10T07:08:01.0432949Z             },
2026-06-10T07:08:01.0433231Z             {
2026-06-10T07:08:01.0433602Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0433903Z               "line": 190
2026-06-10T07:08:01.0434185Z             },
2026-06-10T07:08:01.0434476Z             {
2026-06-10T07:08:01.0434850Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0435178Z               "line": 199
2026-06-10T07:08:01.0435464Z             },
2026-06-10T07:08:01.0435741Z             {
2026-06-10T07:08:01.0436122Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0436428Z               "line": 216
2026-06-10T07:08:01.0436709Z             },
2026-06-10T07:08:01.0437004Z             {
2026-06-10T07:08:01.0437372Z               "path": "crates/spt-live/src/context.rs",
2026-06-10T07:08:01.0437666Z               "line": 242
2026-06-10T07:08:01.0437956Z             },
2026-06-10T07:08:01.0438237Z             {
2026-06-10T07:08:01.0438600Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.0438886Z               "line": 257
2026-06-10T07:08:01.0439264Z             },
2026-06-10T07:08:01.0439540Z             {
2026-06-10T07:08:01.0439910Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.0440208Z               "line": 244
2026-06-10T07:08:01.0440485Z             },
2026-06-10T07:08:01.0440770Z             {
2026-06-10T07:08:01.0441163Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T07:08:01.0441458Z               "line": 265
2026-06-10T07:08:01.0441753Z             },
2026-06-10T07:08:01.0442035Z             {
2026-06-10T07:08:01.0442436Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T07:08:01.0442729Z               "line": 293
2026-06-10T07:08:01.0443008Z             },
2026-06-10T07:08:01.0443280Z             {
2026-06-10T07:08:01.0443690Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T07:08:01.0443991Z               "line": 317
2026-06-10T07:08:01.0444272Z             },
2026-06-10T07:08:01.0444558Z             {
2026-06-10T07:08:01.0444950Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-10T07:08:01.0445244Z               "line": 327
2026-06-10T07:08:01.0445527Z             },
2026-06-10T07:08:01.0445814Z             {
2026-06-10T07:08:01.0446185Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.0446476Z               "line": 540
2026-06-10T07:08:01.0446777Z             }
2026-06-10T07:08:01.0447058Z           ]
2026-06-10T07:08:01.0447345Z         }
2026-06-10T07:08:01.0447618Z       }
2026-06-10T07:08:01.0447894Z     },
2026-06-10T07:08:01.0448173Z     {
2026-06-10T07:08:01.0448540Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-10T07:08:01.0449079Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-10T07:08:01.0449388Z       "requiredStages": [
2026-06-10T07:08:01.0449679Z         "impl",
2026-06-10T07:08:01.0449951Z         "unit"
2026-06-10T07:08:01.0450270Z       ],
2026-06-10T07:08:01.0450550Z       "stages": {
2026-06-10T07:08:01.0450831Z         "doc": {
2026-06-10T07:08:01.0451146Z           "complete": false,
2026-06-10T07:08:01.0451442Z           "evidence": []
2026-06-10T07:08:01.0451723Z         },
2026-06-10T07:08:01.0451998Z         "impl": {
2026-06-10T07:08:01.0452289Z           "complete": true,
2026-06-10T07:08:01.0452580Z           "evidence": [
2026-06-10T07:08:01.0452847Z             {
2026-06-10T07:08:01.0453204Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T07:08:01.0453621Z               "line": 25
2026-06-10T07:08:01.0453907Z             },
2026-06-10T07:08:01.0454193Z             {
2026-06-10T07:08:01.0454556Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.0454846Z               "line": 26
2026-06-10T07:08:01.0455239Z             },
2026-06-10T07:08:01.0455549Z             {
2026-06-10T07:08:01.0456050Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.0456479Z               "line": 159
2026-06-10T07:08:01.0456779Z             }
2026-06-10T07:08:01.0457055Z           ]
2026-06-10T07:08:01.0457338Z         },
2026-06-10T07:08:01.0457618Z         "int": {
2026-06-10T07:08:01.0457924Z           "complete": false,
2026-06-10T07:08:01.0458210Z           "evidence": []
2026-06-10T07:08:01.0458492Z         },
2026-06-10T07:08:01.0458776Z         "unit": {
2026-06-10T07:08:01.0459201Z           "complete": true,
2026-06-10T07:08:01.0459530Z           "evidence": [
2026-06-10T07:08:01.0459807Z             {
2026-06-10T07:08:01.0460182Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T07:08:01.0460474Z               "line": 184
2026-06-10T07:08:01.0460756Z             },
2026-06-10T07:08:01.0461035Z             {
2026-06-10T07:08:01.0461401Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T07:08:01.0461696Z               "line": 236
2026-06-10T07:08:01.0461992Z             },
2026-06-10T07:08:01.0462268Z             {
2026-06-10T07:08:01.0462631Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.0462917Z               "line": 186
2026-06-10T07:08:01.0463193Z             }
2026-06-10T07:08:01.0463479Z           ]
2026-06-10T07:08:01.0463760Z         }
2026-06-10T07:08:01.0464029Z       }
2026-06-10T07:08:01.0464311Z     },
2026-06-10T07:08:01.0464587Z     {
2026-06-10T07:08:01.0464916Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-10T07:08:01.0465426Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-10T07:08:01.0465726Z       "requiredStages": [
2026-06-10T07:08:01.0466017Z         "impl",
2026-06-10T07:08:01.0466293Z         "unit"
2026-06-10T07:08:01.0466554Z       ],
2026-06-10T07:08:01.0466840Z       "stages": {
2026-06-10T07:08:01.0467130Z         "doc": {
2026-06-10T07:08:01.0467421Z           "complete": false,
2026-06-10T07:08:01.0467727Z           "evidence": []
2026-06-10T07:08:01.0468021Z         },
2026-06-10T07:08:01.0468307Z         "impl": {
2026-06-10T07:08:01.0468612Z           "complete": true,
2026-06-10T07:08:01.0468899Z           "evidence": [
2026-06-10T07:08:01.0469385Z             {
2026-06-10T07:08:01.0469766Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0470057Z               "line": 48
2026-06-10T07:08:01.0470343Z             },
2026-06-10T07:08:01.0470624Z             {
2026-06-10T07:08:01.0471006Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0471297Z               "line": 55
2026-06-10T07:08:01.0471576Z             },
2026-06-10T07:08:01.0471860Z             {
2026-06-10T07:08:01.0472237Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0472533Z               "line": 74
2026-06-10T07:08:01.0472809Z             },
2026-06-10T07:08:01.0473085Z             {
2026-06-10T07:08:01.0473453Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0473753Z               "line": 91
2026-06-10T07:08:01.0474030Z             }
2026-06-10T07:08:01.0474315Z           ]
2026-06-10T07:08:01.0474593Z         },
2026-06-10T07:08:01.0474866Z         "int": {
2026-06-10T07:08:01.0475176Z           "complete": false,
2026-06-10T07:08:01.0475467Z           "evidence": []
2026-06-10T07:08:01.0475744Z         },
2026-06-10T07:08:01.0476029Z         "unit": {
2026-06-10T07:08:01.0476325Z           "complete": true,
2026-06-10T07:08:01.0476625Z           "evidence": [
2026-06-10T07:08:01.0476900Z             {
2026-06-10T07:08:01.0477274Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0477565Z               "line": 149
2026-06-10T07:08:01.0477967Z             },
2026-06-10T07:08:01.0478233Z             {
2026-06-10T07:08:01.0478601Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0478911Z               "line": 166
2026-06-10T07:08:01.0479278Z             },
2026-06-10T07:08:01.0479560Z             {
2026-06-10T07:08:01.0480035Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0480336Z               "line": 176
2026-06-10T07:08:01.0480617Z             },
2026-06-10T07:08:01.0480898Z             {
2026-06-10T07:08:01.0481270Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0481556Z               "line": 194
2026-06-10T07:08:01.0481843Z             },
2026-06-10T07:08:01.0482127Z             {
2026-06-10T07:08:01.0482507Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.0482802Z               "line": 207
2026-06-10T07:08:01.0483088Z             }
2026-06-10T07:08:01.0483369Z           ]
2026-06-10T07:08:01.0483665Z         }
2026-06-10T07:08:01.0483946Z       }
2026-06-10T07:08:01.0484218Z     },
2026-06-10T07:08:01.0484503Z     {
2026-06-10T07:08:01.0484856Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-10T07:08:01.0485446Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-10T07:08:01.0485765Z       "requiredStages": [
2026-06-10T07:08:01.0486050Z         "impl",
2026-06-10T07:08:01.0486337Z         "unit"
2026-06-10T07:08:01.0486614Z       ],
2026-06-10T07:08:01.0486909Z       "stages": {
2026-06-10T07:08:01.0487185Z         "doc": {
2026-06-10T07:08:01.0487488Z           "complete": false,
2026-06-10T07:08:01.0487782Z           "evidence": []
2026-06-10T07:08:01.0488054Z         },
2026-06-10T07:08:01.0488341Z         "impl": {
2026-06-10T07:08:01.0488636Z           "complete": true,
2026-06-10T07:08:01.0488932Z           "evidence": [
2026-06-10T07:08:01.0489294Z             {
2026-06-10T07:08:01.0489685Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.0489995Z               "line": 373
2026-06-10T07:08:01.0490275Z             },
2026-06-10T07:08:01.0490562Z             {
2026-06-10T07:08:01.0490929Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.0491225Z               "line": 26
2026-06-10T07:08:01.0491496Z             }
2026-06-10T07:08:01.0491773Z           ]
2026-06-10T07:08:01.0492064Z         },
2026-06-10T07:08:01.0492345Z         "int": {
2026-06-10T07:08:01.0492653Z           "complete": false,
2026-06-10T07:08:01.0492951Z           "evidence": []
2026-06-10T07:08:01.0493232Z         },
2026-06-10T07:08:01.0493514Z         "unit": {
2026-06-10T07:08:01.0493815Z           "complete": true,
2026-06-10T07:08:01.0494111Z           "evidence": [
2026-06-10T07:08:01.0494382Z             {
2026-06-10T07:08:01.0494753Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.0495040Z               "line": 150
2026-06-10T07:08:01.0495318Z             },
2026-06-10T07:08:01.0495602Z             {
2026-06-10T07:08:01.0495977Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.0496277Z               "line": 208
2026-06-10T07:08:01.0496559Z             }
2026-06-10T07:08:01.0496840Z           ]
2026-06-10T07:08:01.0497111Z         }
2026-06-10T07:08:01.0497387Z       }
2026-06-10T07:08:01.0497659Z     },
2026-06-10T07:08:01.0497945Z     {
2026-06-10T07:08:01.0498314Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-10T07:08:01.0502147Z       "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-10T07:08:01.0502457Z       "requiredStages": [
2026-06-10T07:08:01.0502742Z         "doc",
2026-06-10T07:08:01.0503137Z         "impl",
2026-06-10T07:08:01.0503417Z         "unit"
2026-06-10T07:08:01.0503689Z       ],
2026-06-10T07:08:01.0503975Z       "stages": {
2026-06-10T07:08:01.0504252Z         "doc": {
2026-06-10T07:08:01.0504547Z           "complete": true,
2026-06-10T07:08:01.0504843Z           "evidence": [
2026-06-10T07:08:01.0505300Z             {
2026-06-10T07:08:01.0505638Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0505925Z               "line": 214
2026-06-10T07:08:01.0506204Z             }
2026-06-10T07:08:01.0506469Z           ]
2026-06-10T07:08:01.0506756Z         },
2026-06-10T07:08:01.0507032Z         "impl": {
2026-06-10T07:08:01.0507322Z           "complete": true,
2026-06-10T07:08:01.0507609Z           "evidence": [
2026-06-10T07:08:01.0507885Z             {
2026-06-10T07:08:01.0508267Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0508552Z               "line": 54
2026-06-10T07:08:01.0508840Z             },
2026-06-10T07:08:01.0509207Z             {
2026-06-10T07:08:01.0509584Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.0509880Z               "line": 511
2026-06-10T07:08:01.0510152Z             },
2026-06-10T07:08:01.0510434Z             {
2026-06-10T07:08:01.0510819Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0511115Z               "line": 36
2026-06-10T07:08:01.0511400Z             },
2026-06-10T07:08:01.0511664Z             {
2026-06-10T07:08:01.0512053Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0512340Z               "line": 59
2026-06-10T07:08:01.0512626Z             },
2026-06-10T07:08:01.0512898Z             {
2026-06-10T07:08:01.0513279Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0513580Z               "line": 83
2026-06-10T07:08:01.0513854Z             },
2026-06-10T07:08:01.0514134Z             {
2026-06-10T07:08:01.0514526Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0514821Z               "line": 140
2026-06-10T07:08:01.0515103Z             },
2026-06-10T07:08:01.0515378Z             {
2026-06-10T07:08:01.0515775Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0516066Z               "line": 159
2026-06-10T07:08:01.0516347Z             },
2026-06-10T07:08:01.0516622Z             {
2026-06-10T07:08:01.0517011Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0517306Z               "line": 384
2026-06-10T07:08:01.0517587Z             },
2026-06-10T07:08:01.0517868Z             {
2026-06-10T07:08:01.0518245Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0518541Z               "line": 526
2026-06-10T07:08:01.0518822Z             },
2026-06-10T07:08:01.0519179Z             {
2026-06-10T07:08:01.0519563Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0519854Z               "line": 572
2026-06-10T07:08:01.0520140Z             },
2026-06-10T07:08:01.0520416Z             {
2026-06-10T07:08:01.0520783Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.0521069Z               "line": 145
2026-06-10T07:08:01.0521351Z             },
2026-06-10T07:08:01.0521627Z             {
2026-06-10T07:08:01.0521970Z               "path": "crates/spt/src/main.rs",
2026-06-10T07:08:01.0522256Z               "line": 39
2026-06-10T07:08:01.0522538Z             }
2026-06-10T07:08:01.0522801Z           ]
2026-06-10T07:08:01.0523076Z         },
2026-06-10T07:08:01.0523357Z         "int": {
2026-06-10T07:08:01.0523662Z           "complete": false,
2026-06-10T07:08:01.0523972Z           "evidence": []
2026-06-10T07:08:01.0524253Z         },
2026-06-10T07:08:01.0524532Z         "unit": {
2026-06-10T07:08:01.0524832Z           "complete": true,
2026-06-10T07:08:01.0525128Z           "evidence": [
2026-06-10T07:08:01.0525410Z             {
2026-06-10T07:08:01.0525800Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0526214Z               "line": 785
2026-06-10T07:08:01.0526496Z             },
2026-06-10T07:08:01.0526772Z             {
2026-06-10T07:08:01.0527167Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0527455Z               "line": 826
2026-06-10T07:08:01.0527738Z             },
2026-06-10T07:08:01.0528109Z             {
2026-06-10T07:08:01.0528495Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.0528791Z               "line": 900
2026-06-10T07:08:01.0529130Z             }
2026-06-10T07:08:01.0529411Z           ]
2026-06-10T07:08:01.0529687Z         }
2026-06-10T07:08:01.0529957Z       }
2026-06-10T07:08:01.0530229Z     },
2026-06-10T07:08:01.0530515Z     {
2026-06-10T07:08:01.0530891Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-10T07:08:01.0535899Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-10T07:08:01.0536218Z       "requiredStages": [
2026-06-10T07:08:01.0536504Z         "impl",
2026-06-10T07:08:01.0536775Z         "unit"
2026-06-10T07:08:01.0537052Z       ],
2026-06-10T07:08:01.0537337Z       "stages": {
2026-06-10T07:08:01.0537628Z         "doc": {
2026-06-10T07:08:01.0537926Z           "complete": false,
2026-06-10T07:08:01.0538222Z           "evidence": []
2026-06-10T07:08:01.0538489Z         },
2026-06-10T07:08:01.0538756Z         "impl": {
2026-06-10T07:08:01.0539147Z           "complete": true,
2026-06-10T07:08:01.0539429Z           "evidence": [
2026-06-10T07:08:01.0542315Z             {
2026-06-10T07:08:01.0542743Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0543048Z               "line": 31
2026-06-10T07:08:01.0543334Z             }
2026-06-10T07:08:01.0543616Z           ]
2026-06-10T07:08:01.0543906Z         },
2026-06-10T07:08:01.0544187Z         "int": {
2026-06-10T07:08:01.0544521Z           "complete": false,
2026-06-10T07:08:01.0544817Z           "evidence": []
2026-06-10T07:08:01.0545102Z         },
2026-06-10T07:08:01.0545383Z         "unit": {
2026-06-10T07:08:01.0545709Z           "complete": true,
2026-06-10T07:08:01.0546033Z           "evidence": [
2026-06-10T07:08:01.0546300Z             {
2026-06-10T07:08:01.0546691Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0546977Z               "line": 181
2026-06-10T07:08:01.0547273Z             }
2026-06-10T07:08:01.0547554Z           ]
2026-06-10T07:08:01.0547826Z         }
2026-06-10T07:08:01.0548104Z       }
2026-06-10T07:08:01.0548379Z     },
2026-06-10T07:08:01.0548653Z     {
2026-06-10T07:08:01.0549111Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-10T07:08:01.0549607Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-10T07:08:01.0549916Z       "requiredStages": [
2026-06-10T07:08:01.0550207Z         "impl",
2026-06-10T07:08:01.0550489Z         "unit"
2026-06-10T07:08:01.0550760Z       ],
2026-06-10T07:08:01.0551044Z       "stages": {
2026-06-10T07:08:01.0551382Z         "doc": {
2026-06-10T07:08:01.0551682Z           "complete": false,
2026-06-10T07:08:01.0551983Z           "evidence": []
2026-06-10T07:08:01.0552255Z         },
2026-06-10T07:08:01.0552546Z         "impl": {
2026-06-10T07:08:01.0552847Z           "complete": true,
2026-06-10T07:08:01.0553137Z           "evidence": [
2026-06-10T07:08:01.0553423Z             {
2026-06-10T07:08:01.0553808Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0554103Z               "line": 49
2026-06-10T07:08:01.0554556Z             },
2026-06-10T07:08:01.0554838Z             {
2026-06-10T07:08:01.0555223Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0555524Z               "line": 81
2026-06-10T07:08:01.0555797Z             }
2026-06-10T07:08:01.0556076Z           ]
2026-06-10T07:08:01.0556355Z         },
2026-06-10T07:08:01.0556631Z         "int": {
2026-06-10T07:08:01.0557895Z           "complete": false,
2026-06-10T07:08:01.0558224Z           "evidence": []
2026-06-10T07:08:01.0558559Z         },
2026-06-10T07:08:01.0558842Z         "unit": {
2026-06-10T07:08:01.0559222Z           "complete": true,
2026-06-10T07:08:01.0559522Z           "evidence": [
2026-06-10T07:08:01.0559822Z             {
2026-06-10T07:08:01.0560234Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0560540Z               "line": 156
2026-06-10T07:08:01.0560825Z             },
2026-06-10T07:08:01.0561101Z             {
2026-06-10T07:08:01.0561491Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0561794Z               "line": 173
2026-06-10T07:08:01.0562070Z             },
2026-06-10T07:08:01.0562351Z             {
2026-06-10T07:08:01.0562763Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0563057Z               "line": 196
2026-06-10T07:08:01.0563334Z             }
2026-06-10T07:08:01.0563611Z           ]
2026-06-10T07:08:01.0563906Z         }
2026-06-10T07:08:01.0564182Z       }
2026-06-10T07:08:01.0564464Z     },
2026-06-10T07:08:01.0564736Z     {
2026-06-10T07:08:01.0565116Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-10T07:08:01.0565665Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-10T07:08:01.0565971Z       "requiredStages": [
2026-06-10T07:08:01.0566251Z         "impl",
2026-06-10T07:08:01.0566522Z         "unit"
2026-06-10T07:08:01.0566801Z       ],
2026-06-10T07:08:01.0567082Z       "stages": {
2026-06-10T07:08:01.0567364Z         "doc": {
2026-06-10T07:08:01.0567669Z           "complete": false,
2026-06-10T07:08:01.0568007Z           "evidence": []
2026-06-10T07:08:01.0568280Z         },
2026-06-10T07:08:01.0568571Z         "impl": {
2026-06-10T07:08:01.0568872Z           "complete": true,
2026-06-10T07:08:01.0569252Z           "evidence": [
2026-06-10T07:08:01.0569542Z             {
2026-06-10T07:08:01.0569940Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0570241Z               "line": 120
2026-06-10T07:08:01.0570522Z             }
2026-06-10T07:08:01.0570790Z           ]
2026-06-10T07:08:01.0571066Z         },
2026-06-10T07:08:01.0571341Z         "int": {
2026-06-10T07:08:01.0571666Z           "complete": false,
2026-06-10T07:08:01.0571951Z           "evidence": []
2026-06-10T07:08:01.0572240Z         },
2026-06-10T07:08:01.0572530Z         "unit": {
2026-06-10T07:08:01.0572836Z           "complete": true,
2026-06-10T07:08:01.0573136Z           "evidence": [
2026-06-10T07:08:01.0573413Z             {
2026-06-10T07:08:01.0573808Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0574108Z               "line": 212
2026-06-10T07:08:01.0574395Z             },
2026-06-10T07:08:01.0574677Z             {
2026-06-10T07:08:01.0575067Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0575362Z               "line": 221
2026-06-10T07:08:01.0575644Z             },
2026-06-10T07:08:01.0575930Z             {
2026-06-10T07:08:01.0576311Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0576607Z               "line": 229
2026-06-10T07:08:01.0576889Z             },
2026-06-10T07:08:01.0577163Z             {
2026-06-10T07:08:01.0577552Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0577838Z               "line": 239
2026-06-10T07:08:01.0578120Z             },
2026-06-10T07:08:01.0578400Z             {
2026-06-10T07:08:01.0578783Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-10T07:08:01.0579169Z               "line": 249
2026-06-10T07:08:01.0579597Z             }
2026-06-10T07:08:01.0579892Z           ]
2026-06-10T07:08:01.0580172Z         }
2026-06-10T07:08:01.0580462Z       }
2026-06-10T07:08:01.0580739Z     },
2026-06-10T07:08:01.0581011Z     {
2026-06-10T07:08:01.0581359Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-10T07:08:01.0581965Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-10T07:08:01.0582270Z       "requiredStages": [
2026-06-10T07:08:01.0582558Z         "impl",
2026-06-10T07:08:01.0582837Z         "unit"
2026-06-10T07:08:01.0583124Z       ],
2026-06-10T07:08:01.0583405Z       "stages": {
2026-06-10T07:08:01.0583677Z         "doc": {
2026-06-10T07:08:01.0583968Z           "complete": false,
2026-06-10T07:08:01.0584264Z           "evidence": []
2026-06-10T07:08:01.0584541Z         },
2026-06-10T07:08:01.0584822Z         "impl": {
2026-06-10T07:08:01.0585113Z           "complete": true,
2026-06-10T07:08:01.0585397Z           "evidence": [
2026-06-10T07:08:01.0585674Z             {
2026-06-10T07:08:01.0586045Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.0586350Z               "line": 14
2026-06-10T07:08:01.0586628Z             },
2026-06-10T07:08:01.0586908Z             {
2026-06-10T07:08:01.0587251Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.0587543Z               "line": 62
2026-06-10T07:08:01.0587837Z             }
2026-06-10T07:08:01.0588117Z           ]
2026-06-10T07:08:01.0588398Z         },
2026-06-10T07:08:01.0588675Z         "int": {
2026-06-10T07:08:01.0589052Z           "complete": false,
2026-06-10T07:08:01.0589352Z           "evidence": []
2026-06-10T07:08:01.0589624Z         },
2026-06-10T07:08:01.0589910Z         "unit": {
2026-06-10T07:08:01.0590210Z           "complete": true,
2026-06-10T07:08:01.0590505Z           "evidence": [
2026-06-10T07:08:01.0590783Z             {
2026-06-10T07:08:01.0591131Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.0591422Z               "line": 160
2026-06-10T07:08:01.0591705Z             },
2026-06-10T07:08:01.0591990Z             {
2026-06-10T07:08:01.0592333Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.0592629Z               "line": 197
2026-06-10T07:08:01.0592911Z             },
2026-06-10T07:08:01.0593195Z             {
2026-06-10T07:08:01.0593541Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.0593838Z               "line": 219
2026-06-10T07:08:01.0594128Z             }
2026-06-10T07:08:01.0594404Z           ]
2026-06-10T07:08:01.0594681Z         }
2026-06-10T07:08:01.0594957Z       }
2026-06-10T07:08:01.0595267Z     },
2026-06-10T07:08:01.0595543Z     {
2026-06-10T07:08:01.0595876Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-10T07:08:01.0599854Z       "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-10T07:08:01.0600169Z       "requiredStages": [],
2026-06-10T07:08:01.0600460Z       "stages": {
2026-06-10T07:08:01.0600746Z         "doc": {
2026-06-10T07:08:01.0601060Z           "complete": true,
2026-06-10T07:08:01.0601362Z           "evidence": [
2026-06-10T07:08:01.0601644Z             {
2026-06-10T07:08:01.0601992Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0602284Z               "line": 165
2026-06-10T07:08:01.0602564Z             }
2026-06-10T07:08:01.0602846Z           ]
2026-06-10T07:08:01.0603123Z         },
2026-06-10T07:08:01.0603404Z         "impl": {
2026-06-10T07:08:01.0603712Z           "complete": false,
2026-06-10T07:08:01.0604010Z           "evidence": []
2026-06-10T07:08:01.0604287Z         },
2026-06-10T07:08:01.0604568Z         "int": {
2026-06-10T07:08:01.0604868Z           "complete": false,
2026-06-10T07:08:01.0605298Z           "evidence": []
2026-06-10T07:08:01.0605584Z         },
2026-06-10T07:08:01.0605865Z         "unit": {
2026-06-10T07:08:01.0606175Z           "complete": false,
2026-06-10T07:08:01.0606470Z           "evidence": []
2026-06-10T07:08:01.0606751Z         }
2026-06-10T07:08:01.0607028Z       }
2026-06-10T07:08:01.0607395Z     },
2026-06-10T07:08:01.0607681Z     {
2026-06-10T07:08:01.0608048Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-10T07:08:01.0608710Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-10T07:08:01.0609084Z       "requiredStages": [
2026-06-10T07:08:01.0609365Z         "impl",
2026-06-10T07:08:01.0609642Z         "unit"
2026-06-10T07:08:01.0609914Z       ],
2026-06-10T07:08:01.0610200Z       "stages": {
2026-06-10T07:08:01.0610472Z         "doc": {
2026-06-10T07:08:01.0610774Z           "complete": false,
2026-06-10T07:08:01.0611054Z           "evidence": []
2026-06-10T07:08:01.0611335Z         },
2026-06-10T07:08:01.0611615Z         "impl": {
2026-06-10T07:08:01.0611913Z           "complete": true,
2026-06-10T07:08:01.0612200Z           "evidence": [
2026-06-10T07:08:01.0612466Z             {
2026-06-10T07:08:01.0612825Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0613110Z               "line": 76
2026-06-10T07:08:01.0613392Z             },
2026-06-10T07:08:01.0613654Z             {
2026-06-10T07:08:01.0614031Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0614325Z               "line": 167
2026-06-10T07:08:01.0614595Z             },
2026-06-10T07:08:01.0614875Z             {
2026-06-10T07:08:01.0615239Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0615539Z               "line": 233
2026-06-10T07:08:01.0615815Z             },
2026-06-10T07:08:01.0616091Z             {
2026-06-10T07:08:01.0616468Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0616754Z               "line": 272
2026-06-10T07:08:01.0617044Z             }
2026-06-10T07:08:01.0617311Z           ]
2026-06-10T07:08:01.0617588Z         },
2026-06-10T07:08:01.0617874Z         "int": {
2026-06-10T07:08:01.0618175Z           "complete": false,
2026-06-10T07:08:01.0618471Z           "evidence": []
2026-06-10T07:08:01.0618742Z         },
2026-06-10T07:08:01.0619115Z         "unit": {
2026-06-10T07:08:01.0619428Z           "complete": true,
2026-06-10T07:08:01.0619725Z           "evidence": [
2026-06-10T07:08:01.0620002Z             {
2026-06-10T07:08:01.0620370Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0620675Z               "line": 321
2026-06-10T07:08:01.0620951Z             },
2026-06-10T07:08:01.0621246Z             {
2026-06-10T07:08:01.0621610Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0621905Z               "line": 329
2026-06-10T07:08:01.0622194Z             },
2026-06-10T07:08:01.0622473Z             {
2026-06-10T07:08:01.0622845Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0623140Z               "line": 356
2026-06-10T07:08:01.0623422Z             },
2026-06-10T07:08:01.0623703Z             {
2026-06-10T07:08:01.0624071Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0624361Z               "line": 395
2026-06-10T07:08:01.0624639Z             },
2026-06-10T07:08:01.0624904Z             {
2026-06-10T07:08:01.0625265Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0625556Z               "line": 406
2026-06-10T07:08:01.0625823Z             },
2026-06-10T07:08:01.0626094Z             {
2026-06-10T07:08:01.0626452Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0626733Z               "line": 418
2026-06-10T07:08:01.0627014Z             },
2026-06-10T07:08:01.0627286Z             {
2026-06-10T07:08:01.0627652Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-10T07:08:01.0627957Z               "line": 442
2026-06-10T07:08:01.0628334Z             }
2026-06-10T07:08:01.0628615Z           ]
2026-06-10T07:08:01.0628882Z         }
2026-06-10T07:08:01.0629221Z       }
2026-06-10T07:08:01.0629487Z     },
2026-06-10T07:08:01.0629764Z     {
2026-06-10T07:08:01.0630091Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-10T07:08:01.0630542Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-10T07:08:01.0630959Z       "requiredStages": [
2026-06-10T07:08:01.0631240Z         "impl",
2026-06-10T07:08:01.0631520Z         "int"
2026-06-10T07:08:01.0631792Z       ],
2026-06-10T07:08:01.0632074Z       "stages": {
2026-06-10T07:08:01.0632350Z         "doc": {
2026-06-10T07:08:01.0632641Z           "complete": false,
2026-06-10T07:08:01.0632930Z           "evidence": []
2026-06-10T07:08:01.0633205Z         },
2026-06-10T07:08:01.0633487Z         "impl": {
2026-06-10T07:08:01.0633777Z           "complete": true,
2026-06-10T07:08:01.0634068Z           "evidence": [
2026-06-10T07:08:01.0634340Z             {
2026-06-10T07:08:01.0634717Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.0634993Z               "line": 22
2026-06-10T07:08:01.0635269Z             }
2026-06-10T07:08:01.0635567Z           ]
2026-06-10T07:08:01.0635840Z         },
2026-06-10T07:08:01.0636121Z         "int": {
2026-06-10T07:08:01.0636421Z           "complete": true,
2026-06-10T07:08:01.0636717Z           "evidence": [
2026-06-10T07:08:01.0636988Z             {
2026-06-10T07:08:01.0637365Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-10T07:08:01.0637652Z               "line": 18
2026-06-10T07:08:01.0637933Z             }
2026-06-10T07:08:01.0638207Z           ]
2026-06-10T07:08:01.0638474Z         },
2026-06-10T07:08:01.0638756Z         "unit": {
2026-06-10T07:08:01.0639156Z           "complete": false,
2026-06-10T07:08:01.0639490Z           "evidence": []
2026-06-10T07:08:01.0639766Z         }
2026-06-10T07:08:01.0640023Z       }
2026-06-10T07:08:01.0640301Z     },
2026-06-10T07:08:01.0640576Z     {
2026-06-10T07:08:01.0640952Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-10T07:08:01.0641542Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-10T07:08:01.0641848Z       "requiredStages": [
2026-06-10T07:08:01.0642139Z         "impl",
2026-06-10T07:08:01.0642420Z         "unit"
2026-06-10T07:08:01.0642700Z       ],
2026-06-10T07:08:01.0642996Z       "stages": {
2026-06-10T07:08:01.0643277Z         "doc": {
2026-06-10T07:08:01.0643584Z           "complete": false,
2026-06-10T07:08:01.0643880Z           "evidence": []
2026-06-10T07:08:01.0644166Z         },
2026-06-10T07:08:01.0644443Z         "impl": {
2026-06-10T07:08:01.0644753Z           "complete": true,
2026-06-10T07:08:01.0645039Z           "evidence": [
2026-06-10T07:08:01.0645326Z             {
2026-06-10T07:08:01.0645721Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.0646014Z               "line": 372
2026-06-10T07:08:01.0646294Z             },
2026-06-10T07:08:01.0646570Z             {
2026-06-10T07:08:01.0646952Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.0647244Z               "line": 27
2026-06-10T07:08:01.0647519Z             }
2026-06-10T07:08:01.0647805Z           ]
2026-06-10T07:08:01.0648082Z         },
2026-06-10T07:08:01.0648367Z         "int": {
2026-06-10T07:08:01.0648668Z           "complete": false,
2026-06-10T07:08:01.0649048Z           "evidence": []
2026-06-10T07:08:01.0649330Z         },
2026-06-10T07:08:01.0649602Z         "unit": {
2026-06-10T07:08:01.0649912Z           "complete": true,
2026-06-10T07:08:01.0650189Z           "evidence": [
2026-06-10T07:08:01.0650466Z             {
2026-06-10T07:08:01.0650852Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.0651141Z               "line": 817
2026-06-10T07:08:01.0651420Z             },
2026-06-10T07:08:01.0651682Z             {
2026-06-10T07:08:01.0652055Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.0652341Z               "line": 181
2026-06-10T07:08:01.0652728Z             }
2026-06-10T07:08:01.0653009Z           ]
2026-06-10T07:08:01.0653295Z         }
2026-06-10T07:08:01.0653566Z       }
2026-06-10T07:08:01.0653846Z     },
2026-06-10T07:08:01.0654125Z     {
2026-06-10T07:08:01.0654478Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-10T07:08:01.0655084Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-10T07:08:01.0655393Z       "requiredStages": [
2026-06-10T07:08:01.0655679Z         "impl",
2026-06-10T07:08:01.0655966Z         "unit"
2026-06-10T07:08:01.0656239Z       ],
2026-06-10T07:08:01.0656522Z       "stages": {
2026-06-10T07:08:01.0656801Z         "doc": {
2026-06-10T07:08:01.0657111Z           "complete": false,
2026-06-10T07:08:01.0657411Z           "evidence": []
2026-06-10T07:08:01.0657698Z         },
2026-06-10T07:08:01.0657984Z         "impl": {
2026-06-10T07:08:01.0658294Z           "complete": true,
2026-06-10T07:08:01.0658589Z           "evidence": [
2026-06-10T07:08:01.0658880Z             {
2026-06-10T07:08:01.0659365Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0659651Z               "line": 61
2026-06-10T07:08:01.0659933Z             },
2026-06-10T07:08:01.0660215Z             {
2026-06-10T07:08:01.0660600Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0660901Z               "line": 396
2026-06-10T07:08:01.0661177Z             },
2026-06-10T07:08:01.0661463Z             {
2026-06-10T07:08:01.0661827Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T07:08:01.0662119Z               "line": 20
2026-06-10T07:08:01.0662405Z             },
2026-06-10T07:08:01.0662681Z             {
2026-06-10T07:08:01.0663048Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T07:08:01.0663335Z               "line": 100
2026-06-10T07:08:01.0663617Z             },
2026-06-10T07:08:01.0663888Z             {
2026-06-10T07:08:01.0664270Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-10T07:08:01.0664583Z               "line": 443
2026-06-10T07:08:01.0664857Z             },
2026-06-10T07:08:01.0665138Z             {
2026-06-10T07:08:01.0665516Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T07:08:01.0665806Z               "line": 68
2026-06-10T07:08:01.0666087Z             },
2026-06-10T07:08:01.0666373Z             {
2026-06-10T07:08:01.0666770Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T07:08:01.0667063Z               "line": 80
2026-06-10T07:08:01.0667347Z             }
2026-06-10T07:08:01.0667628Z           ]
2026-06-10T07:08:01.0667910Z         },
2026-06-10T07:08:01.0668187Z         "int": {
2026-06-10T07:08:01.0668497Z           "complete": false,
2026-06-10T07:08:01.0668797Z           "evidence": []
2026-06-10T07:08:01.0669159Z         },
2026-06-10T07:08:01.0669454Z         "unit": {
2026-06-10T07:08:01.0669760Z           "complete": true,
2026-06-10T07:08:01.0670065Z           "evidence": [
2026-06-10T07:08:01.0670346Z             {
2026-06-10T07:08:01.0670742Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0671042Z               "line": 556
2026-06-10T07:08:01.0671319Z             },
2026-06-10T07:08:01.0671605Z             {
2026-06-10T07:08:01.0671991Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.0672299Z               "line": 572
2026-06-10T07:08:01.0672579Z             },
2026-06-10T07:08:01.0672860Z             {
2026-06-10T07:08:01.0673242Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.0673533Z               "line": 1043
2026-06-10T07:08:01.0673819Z             },
2026-06-10T07:08:01.0674100Z             {
2026-06-10T07:08:01.0674478Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T07:08:01.0674768Z               "line": 152
2026-06-10T07:08:01.0675042Z             },
2026-06-10T07:08:01.0675317Z             {
2026-06-10T07:08:01.0675679Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T07:08:01.0676076Z               "line": 175
2026-06-10T07:08:01.0676361Z             },
2026-06-10T07:08:01.0676647Z             {
2026-06-10T07:08:01.0677015Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T07:08:01.0677297Z               "line": 186
2026-06-10T07:08:01.0677585Z             },
2026-06-10T07:08:01.0677855Z             {
2026-06-10T07:08:01.0678323Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T07:08:01.0678614Z               "line": 202
2026-06-10T07:08:01.0678895Z             },
2026-06-10T07:08:01.0679258Z             {
2026-06-10T07:08:01.0679629Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-10T07:08:01.0679930Z               "line": 216
2026-06-10T07:08:01.0680202Z             },
2026-06-10T07:08:01.0680471Z             {
2026-06-10T07:08:01.0680863Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-10T07:08:01.0681159Z               "line": 137
2026-06-10T07:08:01.0681440Z             },
2026-06-10T07:08:01.0681725Z             {
2026-06-10T07:08:01.0682059Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0682350Z               "line": 5529
2026-06-10T07:08:01.0682630Z             },
2026-06-10T07:08:01.0682906Z             {
2026-06-10T07:08:01.0683267Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-10T07:08:01.0683573Z               "line": 30
2026-06-10T07:08:01.0683844Z             },
2026-06-10T07:08:01.0684126Z             {
2026-06-10T07:08:01.0684483Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-10T07:08:01.0684784Z               "line": 69
2026-06-10T07:08:01.0685056Z             }
2026-06-10T07:08:01.0685338Z           ]
2026-06-10T07:08:01.0685612Z         }
2026-06-10T07:08:01.0685886Z       }
2026-06-10T07:08:01.0686158Z     },
2026-06-10T07:08:01.0686426Z     {
2026-06-10T07:08:01.0686750Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-10T07:08:01.0687522Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-10T07:08:01.0687837Z       "requiredStages": [
2026-06-10T07:08:01.0688121Z         "impl",
2026-06-10T07:08:01.0688396Z         "unit"
2026-06-10T07:08:01.0688677Z       ],
2026-06-10T07:08:01.0689011Z       "stages": {
2026-06-10T07:08:01.0689298Z         "doc": {
2026-06-10T07:08:01.0689593Z           "complete": true,
2026-06-10T07:08:01.0689888Z           "evidence": [
2026-06-10T07:08:01.0690171Z             {
2026-06-10T07:08:01.0690518Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0690824Z               "line": 133
2026-06-10T07:08:01.0691099Z             }
2026-06-10T07:08:01.0691380Z           ]
2026-06-10T07:08:01.0691656Z         },
2026-06-10T07:08:01.0691942Z         "impl": {
2026-06-10T07:08:01.0692243Z           "complete": true,
2026-06-10T07:08:01.0692529Z           "evidence": [
2026-06-10T07:08:01.0692810Z             {
2026-06-10T07:08:01.0693163Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.0693466Z               "line": 65
2026-06-10T07:08:01.0693752Z             },
2026-06-10T07:08:01.0694038Z             {
2026-06-10T07:08:01.0694390Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T07:08:01.0694681Z               "line": 17
2026-06-10T07:08:01.0694972Z             },
2026-06-10T07:08:01.0695250Z             {
2026-06-10T07:08:01.0695631Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.0695922Z               "line": 217
2026-06-10T07:08:01.0696206Z             },
2026-06-10T07:08:01.0696489Z             {
2026-06-10T07:08:01.0696857Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.0697153Z               "line": 317
2026-06-10T07:08:01.0697433Z             },
2026-06-10T07:08:01.0697715Z             {
2026-06-10T07:08:01.0698082Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:01.0698373Z               "line": 32
2026-06-10T07:08:01.0698658Z             },
2026-06-10T07:08:01.0699046Z             {
2026-06-10T07:08:01.0699534Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0699829Z               "line": 4400
2026-06-10T07:08:01.0700111Z             },
2026-06-10T07:08:01.0700388Z             {
2026-06-10T07:08:01.0700722Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.0701017Z               "line": 4668
2026-06-10T07:08:01.0701284Z             }
2026-06-10T07:08:01.0701654Z           ]
2026-06-10T07:08:01.0701925Z         },
2026-06-10T07:08:01.0702206Z         "int": {
2026-06-10T07:08:01.0702512Z           "complete": false,
2026-06-10T07:08:01.0702817Z           "evidence": []
2026-06-10T07:08:01.0703099Z         },
2026-06-10T07:08:01.0703380Z         "unit": {
2026-06-10T07:08:01.0703689Z           "complete": true,
2026-06-10T07:08:01.0703974Z           "evidence": [
2026-06-10T07:08:01.0704259Z             {
2026-06-10T07:08:01.0704608Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T07:08:01.0704908Z               "line": 94
2026-06-10T07:08:01.0705189Z             },
2026-06-10T07:08:01.0705480Z             {
2026-06-10T07:08:01.0705833Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T07:08:01.0706129Z               "line": 111
2026-06-10T07:08:01.0706405Z             },
2026-06-10T07:08:01.0706684Z             {
2026-06-10T07:08:01.0707040Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T07:08:01.0707340Z               "line": 124
2026-06-10T07:08:01.0707616Z             },
2026-06-10T07:08:01.0707894Z             {
2026-06-10T07:08:01.0708260Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T07:08:01.0708557Z               "line": 134
2026-06-10T07:08:01.0708832Z             },
2026-06-10T07:08:01.0709209Z             {
2026-06-10T07:08:01.0709559Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T07:08:01.0709845Z               "line": 144
2026-06-10T07:08:01.0710127Z             },
2026-06-10T07:08:01.0710403Z             {
2026-06-10T07:08:01.0710761Z               "path": "crates/spt-proto/src/id.rs",
2026-06-10T07:08:01.0711056Z               "line": 156
2026-06-10T07:08:01.0711338Z             },
2026-06-10T07:08:01.0711625Z             {
2026-06-10T07:08:01.0712023Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.0712315Z               "line": 714
2026-06-10T07:08:01.0712591Z             }
2026-06-10T07:08:01.0712873Z           ]
2026-06-10T07:08:01.0713178Z         }
2026-06-10T07:08:01.0713459Z       }
2026-06-10T07:08:01.0713739Z     },
2026-06-10T07:08:01.0714007Z     {
2026-06-10T07:08:01.0714358Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-10T07:08:01.0714786Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-10T07:08:01.0715081Z       "requiredStages": [
2026-06-10T07:08:01.0715367Z         "impl",
2026-06-10T07:08:01.0715652Z         "unit"
2026-06-10T07:08:01.0715934Z       ],
2026-06-10T07:08:01.0716221Z       "stages": {
2026-06-10T07:08:01.0716502Z         "doc": {
2026-06-10T07:08:01.0716802Z           "complete": false,
2026-06-10T07:08:01.0717211Z           "evidence": []
2026-06-10T07:08:01.0717624Z         },
2026-06-10T07:08:01.0717910Z         "impl": {
2026-06-10T07:08:01.0718200Z           "complete": true,
2026-06-10T07:08:01.0718482Z           "evidence": [
2026-06-10T07:08:01.0718778Z             {
2026-06-10T07:08:01.0719393Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.0719680Z               "line": 128
2026-06-10T07:08:01.0719945Z             }
2026-06-10T07:08:01.0720224Z           ]
2026-06-10T07:08:01.0720491Z         },
2026-06-10T07:08:01.0720753Z         "int": {
2026-06-10T07:08:01.0721053Z           "complete": false,
2026-06-10T07:08:01.0721345Z           "evidence": []
2026-06-10T07:08:01.0721616Z         },
2026-06-10T07:08:01.0721889Z         "unit": {
2026-06-10T07:08:01.0722185Z           "complete": true,
2026-06-10T07:08:01.0722471Z           "evidence": [
2026-06-10T07:08:01.0722755Z             {
2026-06-10T07:08:01.0723113Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.0723518Z               "line": 205
2026-06-10T07:08:01.0723800Z             }
2026-06-10T07:08:01.0724072Z           ]
2026-06-10T07:08:01.0724353Z         }
2026-06-10T07:08:01.0724643Z       }
2026-06-10T07:08:01.0724918Z     },
2026-06-10T07:08:01.0725198Z     {
2026-06-10T07:08:01.0725555Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-10T07:08:01.0726146Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-10T07:08:01.0726452Z       "requiredStages": [
2026-06-10T07:08:01.0726738Z         "impl",
2026-06-10T07:08:01.0727029Z         "unit"
2026-06-10T07:08:01.0727292Z       ],
2026-06-10T07:08:01.0727588Z       "stages": {
2026-06-10T07:08:01.0727871Z         "doc": {
2026-06-10T07:08:01.0728174Z           "complete": false,
2026-06-10T07:08:01.0728460Z           "evidence": []
2026-06-10T07:08:01.0728742Z         },
2026-06-10T07:08:01.0729114Z         "impl": {
2026-06-10T07:08:01.0729409Z           "complete": true,
2026-06-10T07:08:01.0729705Z           "evidence": [
2026-06-10T07:08:01.0729991Z             {
2026-06-10T07:08:01.0730357Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0730646Z               "line": 246
2026-06-10T07:08:01.0730928Z             },
2026-06-10T07:08:01.0731209Z             {
2026-06-10T07:08:01.0731562Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0731871Z               "line": 257
2026-06-10T07:08:01.0732144Z             },
2026-06-10T07:08:01.0732426Z             {
2026-06-10T07:08:01.0732792Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0733088Z               "line": 275
2026-06-10T07:08:01.0733368Z             }
2026-06-10T07:08:01.0733644Z           ]
2026-06-10T07:08:01.0733920Z         },
2026-06-10T07:08:01.0734202Z         "int": {
2026-06-10T07:08:01.0734511Z           "complete": false,
2026-06-10T07:08:01.0734807Z           "evidence": []
2026-06-10T07:08:01.0735079Z         },
2026-06-10T07:08:01.0735370Z         "unit": {
2026-06-10T07:08:01.0735668Z           "complete": true,
2026-06-10T07:08:01.0735959Z           "evidence": [
2026-06-10T07:08:01.0736235Z             {
2026-06-10T07:08:01.0736593Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0736875Z               "line": 299
2026-06-10T07:08:01.0737160Z             },
2026-06-10T07:08:01.0737431Z             {
2026-06-10T07:08:01.0737790Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0738076Z               "line": 320
2026-06-10T07:08:01.0738346Z             },
2026-06-10T07:08:01.0738625Z             {
2026-06-10T07:08:01.0739049Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0739344Z               "line": 547
2026-06-10T07:08:01.0739626Z             },
2026-06-10T07:08:01.0739884Z             {
2026-06-10T07:08:01.0740237Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0740523Z               "line": 558
2026-06-10T07:08:01.0740800Z             },
2026-06-10T07:08:01.0741075Z             {
2026-06-10T07:08:01.0741421Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.0741712Z               "line": 571
2026-06-10T07:08:01.0741984Z             }
2026-06-10T07:08:01.0742255Z           ]
2026-06-10T07:08:01.0742526Z         }
2026-06-10T07:08:01.0742804Z       }
2026-06-10T07:08:01.0743084Z     },
2026-06-10T07:08:01.0743361Z     {
2026-06-10T07:08:01.0743700Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-10T07:08:01.0745478Z       "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-10T07:08:01.0745788Z       "requiredStages": [
2026-06-10T07:08:01.0746062Z         "impl",
2026-06-10T07:08:01.0746332Z         "unit"
2026-06-10T07:08:01.0746604Z       ],
2026-06-10T07:08:01.0746886Z       "stages": {
2026-06-10T07:08:01.0747162Z         "doc": {
2026-06-10T07:08:01.0747567Z           "complete": false,
2026-06-10T07:08:01.0747868Z           "evidence": []
2026-06-10T07:08:01.0751087Z         },
2026-06-10T07:08:01.0751407Z         "impl": {
2026-06-10T07:08:01.0751719Z           "complete": true,
2026-06-10T07:08:01.0752010Z           "evidence": [
2026-06-10T07:08:01.0752306Z             {
2026-06-10T07:08:01.0752850Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.0753154Z               "line": 714
2026-06-10T07:08:01.0753440Z             }
2026-06-10T07:08:01.0753716Z           ]
2026-06-10T07:08:01.0754003Z         },
2026-06-10T07:08:01.0754288Z         "int": {
2026-06-10T07:08:01.0754598Z           "complete": false,
2026-06-10T07:08:01.0754899Z           "evidence": []
2026-06-10T07:08:01.0755341Z         },
2026-06-10T07:08:01.0755752Z         "unit": {
2026-06-10T07:08:01.0756057Z           "complete": true,
2026-06-10T07:08:01.0756353Z           "evidence": [
2026-06-10T07:08:01.0756627Z             {
2026-06-10T07:08:01.0757026Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.0757331Z               "line": 828
2026-06-10T07:08:01.0757612Z             }
2026-06-10T07:08:01.0757889Z           ]
2026-06-10T07:08:01.0758165Z         }
2026-06-10T07:08:01.0758452Z       }
2026-06-10T07:08:01.0758723Z     },
2026-06-10T07:08:01.0759095Z     {
2026-06-10T07:08:01.0759438Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-10T07:08:01.0760112Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-10T07:08:01.0760417Z       "requiredStages": [
2026-06-10T07:08:01.0760685Z         "impl",
2026-06-10T07:08:01.0760966Z         "unit"
2026-06-10T07:08:01.0761238Z       ],
2026-06-10T07:08:01.0761520Z       "stages": {
2026-06-10T07:08:01.0761797Z         "doc": {
2026-06-10T07:08:01.0762085Z           "complete": false,
2026-06-10T07:08:01.0762373Z           "evidence": []
2026-06-10T07:08:01.0762650Z         },
2026-06-10T07:08:01.0762937Z         "impl": {
2026-06-10T07:08:01.0763242Z           "complete": true,
2026-06-10T07:08:01.0763542Z           "evidence": [
2026-06-10T07:08:01.0763819Z             {
2026-06-10T07:08:01.0764186Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T07:08:01.0764472Z               "line": 14
2026-06-10T07:08:01.0764754Z             },
2026-06-10T07:08:01.0765034Z             {
2026-06-10T07:08:01.0765392Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:01.0765683Z               "line": 411
2026-06-10T07:08:01.0765964Z             }
2026-06-10T07:08:01.0766240Z           ]
2026-06-10T07:08:01.0766516Z         },
2026-06-10T07:08:01.0766798Z         "int": {
2026-06-10T07:08:01.0767107Z           "complete": false,
2026-06-10T07:08:01.0767396Z           "evidence": []
2026-06-10T07:08:01.0767673Z         },
2026-06-10T07:08:01.0767949Z         "unit": {
2026-06-10T07:08:01.0768255Z           "complete": true,
2026-06-10T07:08:01.0768555Z           "evidence": [
2026-06-10T07:08:01.0768826Z             {
2026-06-10T07:08:01.0769331Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T07:08:01.0769640Z               "line": 130
2026-06-10T07:08:01.0769918Z             },
2026-06-10T07:08:01.0770203Z             {
2026-06-10T07:08:01.0770554Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T07:08:01.0770845Z               "line": 138
2026-06-10T07:08:01.0771131Z             },
2026-06-10T07:08:01.0771422Z             {
2026-06-10T07:08:01.0771766Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T07:08:01.0772066Z               "line": 146
2026-06-10T07:08:01.0772343Z             },
2026-06-10T07:08:01.0772621Z             {
2026-06-10T07:08:01.0772957Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T07:08:01.0773248Z               "line": 154
2026-06-10T07:08:01.0773535Z             },
2026-06-10T07:08:01.0773807Z             {
2026-06-10T07:08:01.0774159Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T07:08:01.0774450Z               "line": 162
2026-06-10T07:08:01.0774865Z             },
2026-06-10T07:08:01.0775156Z             {
2026-06-10T07:08:01.0775503Z               "path": "crates/spt/src/api/auth.rs",
2026-06-10T07:08:01.0775803Z               "line": 170
2026-06-10T07:08:01.0776080Z             }
2026-06-10T07:08:01.0776353Z           ]
2026-06-10T07:08:01.0776629Z         }
2026-06-10T07:08:01.0776906Z       }
2026-06-10T07:08:01.0777277Z     },
2026-06-10T07:08:01.0777564Z     {
2026-06-10T07:08:01.0777923Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-10T07:08:01.0780601Z       "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-10T07:08:01.0780913Z       "requiredStages": [
2026-06-10T07:08:01.0781199Z         "impl",
2026-06-10T07:08:01.0781486Z         "unit"
2026-06-10T07:08:01.0781762Z       ],
2026-06-10T07:08:01.0782062Z       "stages": {
2026-06-10T07:08:01.0782345Z         "doc": {
2026-06-10T07:08:01.0782645Z           "complete": false,
2026-06-10T07:08:01.0782941Z           "evidence": []
2026-06-10T07:08:01.0783215Z         },
2026-06-10T07:08:01.0783494Z         "impl": {
2026-06-10T07:08:01.0783790Z           "complete": true,
2026-06-10T07:08:01.0784104Z           "evidence": [
2026-06-10T07:08:01.0784381Z             {
2026-06-10T07:08:01.0784834Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0785130Z               "line": 34
2026-06-10T07:08:01.0785411Z             }
2026-06-10T07:08:01.0785697Z           ]
2026-06-10T07:08:01.0785973Z         },
2026-06-10T07:08:01.0786255Z         "int": {
2026-06-10T07:08:01.0786560Z           "complete": false,
2026-06-10T07:08:01.0786850Z           "evidence": []
2026-06-10T07:08:01.0787127Z         },
2026-06-10T07:08:01.0787414Z         "unit": {
2026-06-10T07:08:01.0787709Z           "complete": true,
2026-06-10T07:08:01.0788014Z           "evidence": [
2026-06-10T07:08:01.0788289Z             {
2026-06-10T07:08:01.0788740Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0789121Z               "line": 188
2026-06-10T07:08:01.0789408Z             },
2026-06-10T07:08:01.0789689Z             {
2026-06-10T07:08:01.0790142Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0790432Z               "line": 200
2026-06-10T07:08:01.0790709Z             },
2026-06-10T07:08:01.0790992Z             {
2026-06-10T07:08:01.0791430Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0791726Z               "line": 211
2026-06-10T07:08:01.0792003Z             },
2026-06-10T07:08:01.0792280Z             {
2026-06-10T07:08:01.0792722Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0793013Z               "line": 253
2026-06-10T07:08:01.0793285Z             },
2026-06-10T07:08:01.0793558Z             {
2026-06-10T07:08:01.0793992Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0794302Z               "line": 277
2026-06-10T07:08:01.0794575Z             },
2026-06-10T07:08:01.0794860Z             {
2026-06-10T07:08:01.0795293Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0795590Z               "line": 300
2026-06-10T07:08:01.0795861Z             },
2026-06-10T07:08:01.0796134Z             {
2026-06-10T07:08:01.0796585Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-10T07:08:01.0796862Z               "line": 316
2026-06-10T07:08:01.0797144Z             }
2026-06-10T07:08:01.0797420Z           ]
2026-06-10T07:08:01.0797701Z         }
2026-06-10T07:08:01.0797974Z       }
2026-06-10T07:08:01.0798245Z     },
2026-06-10T07:08:01.0798545Z     {
2026-06-10T07:08:01.0798896Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-10T07:08:01.0800649Z       "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-10T07:08:01.0801073Z       "requiredStages": [
2026-06-10T07:08:01.0801355Z         "impl",
2026-06-10T07:08:01.0801631Z         "unit"
2026-06-10T07:08:01.0801906Z       ],
2026-06-10T07:08:01.0802291Z       "stages": {
2026-06-10T07:08:01.0802583Z         "doc": {
2026-06-10T07:08:01.0802882Z           "complete": false,
2026-06-10T07:08:01.0803174Z           "evidence": []
2026-06-10T07:08:01.0803451Z         },
2026-06-10T07:08:01.0803737Z         "impl": {
2026-06-10T07:08:01.0804033Z           "complete": true,
2026-06-10T07:08:01.0804350Z           "evidence": [
2026-06-10T07:08:01.0804628Z             {
2026-06-10T07:08:01.0805001Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0805291Z               "line": 29
2026-06-10T07:08:01.0805568Z             },
2026-06-10T07:08:01.0805858Z             {
2026-06-10T07:08:01.0806226Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0806522Z               "line": 174
2026-06-10T07:08:01.0806798Z             },
2026-06-10T07:08:01.0807078Z             {
2026-06-10T07:08:01.0807445Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0807755Z               "line": 194
2026-06-10T07:08:01.0808033Z             },
2026-06-10T07:08:01.0808323Z             {
2026-06-10T07:08:01.0808695Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0809052Z               "line": 222
2026-06-10T07:08:01.0809334Z             }
2026-06-10T07:08:01.0809603Z           ]
2026-06-10T07:08:01.0809880Z         },
2026-06-10T07:08:01.0810156Z         "int": {
2026-06-10T07:08:01.0810452Z           "complete": false,
2026-06-10T07:08:01.0810747Z           "evidence": []
2026-06-10T07:08:01.0811018Z         },
2026-06-10T07:08:01.0811300Z         "unit": {
2026-06-10T07:08:01.0811596Z           "complete": true,
2026-06-10T07:08:01.0811905Z           "evidence": [
2026-06-10T07:08:01.0812182Z             {
2026-06-10T07:08:01.0812555Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0812856Z               "line": 329
2026-06-10T07:08:01.0813128Z             },
2026-06-10T07:08:01.0813414Z             {
2026-06-10T07:08:01.0813795Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0814091Z               "line": 344
2026-06-10T07:08:01.0814378Z             },
2026-06-10T07:08:01.0814655Z             {
2026-06-10T07:08:01.0815028Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0815314Z               "line": 417
2026-06-10T07:08:01.0815595Z             },
2026-06-10T07:08:01.0815871Z             {
2026-06-10T07:08:01.0816243Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0816578Z               "line": 433
2026-06-10T07:08:01.0817259Z             },
2026-06-10T07:08:01.0817551Z             {
2026-06-10T07:08:01.0817944Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0818255Z               "line": 492
2026-06-10T07:08:01.0818540Z             },
2026-06-10T07:08:01.0818817Z             {
2026-06-10T07:08:01.0819269Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0819574Z               "line": 506
2026-06-10T07:08:01.0819855Z             },
2026-06-10T07:08:01.0820131Z             {
2026-06-10T07:08:01.0820502Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0820797Z               "line": 517
2026-06-10T07:08:01.0821074Z             },
2026-06-10T07:08:01.0821360Z             {
2026-06-10T07:08:01.0821727Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.0822018Z               "line": 528
2026-06-10T07:08:01.0822290Z             }
2026-06-10T07:08:01.0822572Z           ]
2026-06-10T07:08:01.0822850Z         }
2026-06-10T07:08:01.0823116Z       }
2026-06-10T07:08:01.0823392Z     },
2026-06-10T07:08:01.0823816Z     {
2026-06-10T07:08:01.0824188Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-10T07:08:01.0826111Z       "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-10T07:08:01.0826522Z       "requiredStages": [
2026-06-10T07:08:01.0827170Z         "impl",
2026-06-10T07:08:01.0827462Z         "unit"
2026-06-10T07:08:01.0827734Z       ],
2026-06-10T07:08:01.0828010Z       "stages": {
2026-06-10T07:08:01.0828284Z         "doc": {
2026-06-10T07:08:01.0828575Z           "complete": false,
2026-06-10T07:08:01.0828866Z           "evidence": []
2026-06-10T07:08:01.0829243Z         },
2026-06-10T07:08:01.0829519Z         "impl": {
2026-06-10T07:08:01.0829863Z           "complete": true,
2026-06-10T07:08:01.0830149Z           "evidence": [
2026-06-10T07:08:01.0830415Z             {
2026-06-10T07:08:01.0830818Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0831147Z               "line": 27
2026-06-10T07:08:01.0831428Z             },
2026-06-10T07:08:01.0831705Z             {
2026-06-10T07:08:01.0832110Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0832401Z               "line": 110
2026-06-10T07:08:01.0832682Z             },
2026-06-10T07:08:01.0832954Z             {
2026-06-10T07:08:01.0833373Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0833666Z               "line": 153
2026-06-10T07:08:01.0833943Z             },
2026-06-10T07:08:01.0834224Z             {
2026-06-10T07:08:01.0834634Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0834925Z               "line": 182
2026-06-10T07:08:01.0835201Z             },
2026-06-10T07:08:01.0835488Z             {
2026-06-10T07:08:01.0835944Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0836242Z               "line": 31
2026-06-10T07:08:01.0836519Z             },
2026-06-10T07:08:01.0836796Z             {
2026-06-10T07:08:01.0837243Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0837539Z               "line": 113
2026-06-10T07:08:01.0837811Z             },
2026-06-10T07:08:01.0838097Z             {
2026-06-10T07:08:01.0838546Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0838840Z               "line": 138
2026-06-10T07:08:01.0839193Z             }
2026-06-10T07:08:01.0839488Z           ]
2026-06-10T07:08:01.0839765Z         },
2026-06-10T07:08:01.0840047Z         "int": {
2026-06-10T07:08:01.0840351Z           "complete": false,
2026-06-10T07:08:01.0840642Z           "evidence": []
2026-06-10T07:08:01.0840925Z         },
2026-06-10T07:08:01.0841204Z         "unit": {
2026-06-10T07:08:01.0841502Z           "complete": true,
2026-06-10T07:08:01.0841793Z           "evidence": [
2026-06-10T07:08:01.0842069Z             {
2026-06-10T07:08:01.0842495Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0842790Z               "line": 261
2026-06-10T07:08:01.0843067Z             },
2026-06-10T07:08:01.0843343Z             {
2026-06-10T07:08:01.0843749Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0844037Z               "line": 276
2026-06-10T07:08:01.0844316Z             },
2026-06-10T07:08:01.0844593Z             {
2026-06-10T07:08:01.0844999Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0845290Z               "line": 293
2026-06-10T07:08:01.0845566Z             },
2026-06-10T07:08:01.0845847Z             {
2026-06-10T07:08:01.0846258Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0846547Z               "line": 310
2026-06-10T07:08:01.0846830Z             },
2026-06-10T07:08:01.0847103Z             {
2026-06-10T07:08:01.0847527Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0847938Z               "line": 327
2026-06-10T07:08:01.0848224Z             },
2026-06-10T07:08:01.0848500Z             {
2026-06-10T07:08:01.0848906Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.0849282Z               "line": 366
2026-06-10T07:08:01.0849558Z             },
2026-06-10T07:08:01.0849940Z             {
2026-06-10T07:08:01.0850387Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0850677Z               "line": 179
2026-06-10T07:08:01.0850964Z             },
2026-06-10T07:08:01.0851235Z             {
2026-06-10T07:08:01.0851677Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0851967Z               "line": 194
2026-06-10T07:08:01.0852238Z             },
2026-06-10T07:08:01.0852516Z             {
2026-06-10T07:08:01.0852949Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0853244Z               "line": 204
2026-06-10T07:08:01.0853535Z             },
2026-06-10T07:08:01.0853817Z             {
2026-06-10T07:08:01.0854262Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0854554Z               "line": 259
2026-06-10T07:08:01.0854829Z             },
2026-06-10T07:08:01.0855101Z             {
2026-06-10T07:08:01.0855550Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0855840Z               "line": 269
2026-06-10T07:08:01.0856121Z             },
2026-06-10T07:08:01.0856383Z             {
2026-06-10T07:08:01.0856838Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.0857131Z               "line": 283
2026-06-10T07:08:01.0857400Z             }
2026-06-10T07:08:01.0857673Z           ]
2026-06-10T07:08:01.0857945Z         }
2026-06-10T07:08:01.0858221Z       }
2026-06-10T07:08:01.0858488Z     },
2026-06-10T07:08:01.0858765Z     {
2026-06-10T07:08:01.0859260Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-10T07:08:01.0859851Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-10T07:08:01.0860152Z       "requiredStages": [],
2026-06-10T07:08:01.0860438Z       "stages": {
2026-06-10T07:08:01.0860714Z         "doc": {
2026-06-10T07:08:01.0861010Z           "complete": false,
2026-06-10T07:08:01.0861305Z           "evidence": []
2026-06-10T07:08:01.0861576Z         },
2026-06-10T07:08:01.0861858Z         "impl": {
2026-06-10T07:08:01.0862148Z           "complete": false,
2026-06-10T07:08:01.0862432Z           "evidence": []
2026-06-10T07:08:01.0862709Z         },
2026-06-10T07:08:01.0862981Z         "int": {
2026-06-10T07:08:01.0863281Z           "complete": false,
2026-06-10T07:08:01.0863567Z           "evidence": []
2026-06-10T07:08:01.0863829Z         },
2026-06-10T07:08:01.0864105Z         "unit": {
2026-06-10T07:08:01.0864401Z           "complete": false,
2026-06-10T07:08:01.0864691Z           "evidence": []
2026-06-10T07:08:01.0864954Z         }
2026-06-10T07:08:01.0865225Z       }
2026-06-10T07:08:01.0865499Z     },
2026-06-10T07:08:01.0865761Z     {
2026-06-10T07:08:01.0866139Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-10T07:08:01.0868524Z       "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-10T07:08:01.0868838Z       "requiredStages": [
2026-06-10T07:08:01.0869196Z         "impl",
2026-06-10T07:08:01.0869491Z         "unit"
2026-06-10T07:08:01.0869763Z       ],
2026-06-10T07:08:01.0870045Z       "stages": {
2026-06-10T07:08:01.0870318Z         "doc": {
2026-06-10T07:08:01.0870601Z           "complete": false,
2026-06-10T07:08:01.0870897Z           "evidence": []
2026-06-10T07:08:01.0871173Z         },
2026-06-10T07:08:01.0871455Z         "impl": {
2026-06-10T07:08:01.0871746Z           "complete": true,
2026-06-10T07:08:01.0872166Z           "evidence": [
2026-06-10T07:08:01.0872451Z             {
2026-06-10T07:08:01.0872841Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0873125Z               "line": 26
2026-06-10T07:08:01.0873401Z             },
2026-06-10T07:08:01.0873678Z             {
2026-06-10T07:08:01.0874185Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0874475Z               "line": 95
2026-06-10T07:08:01.0874752Z             },
2026-06-10T07:08:01.0875028Z             {
2026-06-10T07:08:01.0875429Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0875728Z               "line": 166
2026-06-10T07:08:01.0876001Z             },
2026-06-10T07:08:01.0876273Z             {
2026-06-10T07:08:01.0876645Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0876936Z               "line": 19
2026-06-10T07:08:01.0877217Z             },
2026-06-10T07:08:01.0877499Z             {
2026-06-10T07:08:01.0877885Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0878175Z               "line": 50
2026-06-10T07:08:01.0878459Z             },
2026-06-10T07:08:01.0878736Z             {
2026-06-10T07:08:01.0879178Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T07:08:01.0879465Z               "line": 18
2026-06-10T07:08:01.0879746Z             },
2026-06-10T07:08:01.0880038Z             {
2026-06-10T07:08:01.0880385Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T07:08:01.0880690Z               "line": 71
2026-06-10T07:08:01.0880967Z             },
2026-06-10T07:08:01.0881243Z             {
2026-06-10T07:08:01.0881605Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:01.0881901Z               "line": 70
2026-06-10T07:08:01.0882182Z             }
2026-06-10T07:08:01.0882460Z           ]
2026-06-10T07:08:01.0882740Z         },
2026-06-10T07:08:01.0883016Z         "int": {
2026-06-10T07:08:01.0883320Z           "complete": false,
2026-06-10T07:08:01.0883618Z           "evidence": []
2026-06-10T07:08:01.0883900Z         },
2026-06-10T07:08:01.0884186Z         "unit": {
2026-06-10T07:08:01.0884482Z           "complete": true,
2026-06-10T07:08:01.0884778Z           "evidence": [
2026-06-10T07:08:01.0885054Z             {
2026-06-10T07:08:01.0885435Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0885732Z               "line": 289
2026-06-10T07:08:01.0886013Z             },
2026-06-10T07:08:01.0886302Z             {
2026-06-10T07:08:01.0886686Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0886978Z               "line": 308
2026-06-10T07:08:01.0887307Z             },
2026-06-10T07:08:01.0887597Z             {
2026-06-10T07:08:01.0888088Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0888373Z               "line": 336
2026-06-10T07:08:01.0888664Z             },
2026-06-10T07:08:01.0889014Z             {
2026-06-10T07:08:01.0889405Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0889705Z               "line": 399
2026-06-10T07:08:01.0889996Z             },
2026-06-10T07:08:01.0890273Z             {
2026-06-10T07:08:01.0890654Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0890945Z               "line": 410
2026-06-10T07:08:01.0891226Z             },
2026-06-10T07:08:01.0891517Z             {
2026-06-10T07:08:01.0891903Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0892189Z               "line": 441
2026-06-10T07:08:01.0892471Z             },
2026-06-10T07:08:01.0892747Z             {
2026-06-10T07:08:01.0893133Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.0893415Z               "line": 452
2026-06-10T07:08:01.0893697Z             },
2026-06-10T07:08:01.0893971Z             {
2026-06-10T07:08:01.0894351Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0894641Z               "line": 77
2026-06-10T07:08:01.0895023Z             },
2026-06-10T07:08:01.0895305Z             {
2026-06-10T07:08:01.0895666Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0895958Z               "line": 97
2026-06-10T07:08:01.0896230Z             },
2026-06-10T07:08:01.0896497Z             {
2026-06-10T07:08:01.0896970Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0897261Z               "line": 112
2026-06-10T07:08:01.0897543Z             },
2026-06-10T07:08:01.0897810Z             {
2026-06-10T07:08:01.0898186Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0898472Z               "line": 123
2026-06-10T07:08:01.0898754Z             },
2026-06-10T07:08:01.0899102Z             {
2026-06-10T07:08:01.0899462Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0899756Z               "line": 130
2026-06-10T07:08:01.0900032Z             },
2026-06-10T07:08:01.0900308Z             {
2026-06-10T07:08:01.0900677Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-10T07:08:01.0900966Z               "line": 145
2026-06-10T07:08:01.0901258Z             },
2026-06-10T07:08:01.0901529Z             {
2026-06-10T07:08:01.0901887Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T07:08:01.0902177Z               "line": 115
2026-06-10T07:08:01.0902463Z             },
2026-06-10T07:08:01.0902740Z             {
2026-06-10T07:08:01.0903097Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T07:08:01.0903398Z               "line": 130
2026-06-10T07:08:01.0903674Z             },
2026-06-10T07:08:01.0903956Z             {
2026-06-10T07:08:01.0904317Z               "path": "crates/spt-proto/src/event.rs",
2026-06-10T07:08:01.0904612Z               "line": 336
2026-06-10T07:08:01.0904891Z             }
2026-06-10T07:08:01.0905178Z           ]
2026-06-10T07:08:01.0905473Z         }
2026-06-10T07:08:01.0905749Z       }
2026-06-10T07:08:01.0906040Z     },
2026-06-10T07:08:01.0906312Z     {
2026-06-10T07:08:01.0906684Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-10T07:08:01.0907479Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-10T07:08:01.0907783Z       "requiredStages": [
2026-06-10T07:08:01.0908069Z         "impl",
2026-06-10T07:08:01.0908350Z         "unit"
2026-06-10T07:08:01.0908631Z       ],
2026-06-10T07:08:01.0908921Z       "stages": {
2026-06-10T07:08:01.0909289Z         "doc": {
2026-06-10T07:08:01.0909595Z           "complete": true,
2026-06-10T07:08:01.0909879Z           "evidence": [
2026-06-10T07:08:01.0910158Z             {
2026-06-10T07:08:01.0910501Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0910792Z               "line": 139
2026-06-10T07:08:01.0911070Z             }
2026-06-10T07:08:01.0911355Z           ]
2026-06-10T07:08:01.0911637Z         },
2026-06-10T07:08:01.0911909Z         "impl": {
2026-06-10T07:08:01.0912200Z           "complete": true,
2026-06-10T07:08:01.0912486Z           "evidence": [
2026-06-10T07:08:01.0912765Z             {
2026-06-10T07:08:01.0913099Z               "path": "crates/spt-store/src/db.rs",
2026-06-10T07:08:01.0913395Z               "line": 29
2026-06-10T07:08:01.0913671Z             },
2026-06-10T07:08:01.0913938Z             {
2026-06-10T07:08:01.0914306Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.0914596Z               "line": 101
2026-06-10T07:08:01.0914873Z             },
2026-06-10T07:08:01.0915153Z             {
2026-06-10T07:08:01.0915529Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0915815Z               "line": 30
2026-06-10T07:08:01.0916086Z             },
2026-06-10T07:08:01.0916373Z             {
2026-06-10T07:08:01.0916726Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.0917012Z               "line": 48
2026-06-10T07:08:01.0917283Z             }
2026-06-10T07:08:01.0917564Z           ]
2026-06-10T07:08:01.0917835Z         },
2026-06-10T07:08:01.0918100Z         "int": {
2026-06-10T07:08:01.0918537Z           "complete": false,
2026-06-10T07:08:01.0918828Z           "evidence": []
2026-06-10T07:08:01.0919186Z         },
2026-06-10T07:08:01.0919472Z         "unit": {
2026-06-10T07:08:01.0919763Z           "complete": true,
2026-06-10T07:08:01.0920058Z           "evidence": [
2026-06-10T07:08:01.0920336Z             {
2026-06-10T07:08:01.0920808Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0921109Z               "line": 162
2026-06-10T07:08:01.0921380Z             }
2026-06-10T07:08:01.0921649Z           ]
2026-06-10T07:08:01.0921920Z         }
2026-06-10T07:08:01.0922197Z       }
2026-06-10T07:08:01.0922474Z     },
2026-06-10T07:08:01.0922741Z     {
2026-06-10T07:08:01.0923094Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-10T07:08:01.0924155Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-10T07:08:01.0924465Z       "requiredStages": [
2026-06-10T07:08:01.0924762Z         "doc",
2026-06-10T07:08:01.0925048Z         "impl",
2026-06-10T07:08:01.0925324Z         "unit"
2026-06-10T07:08:01.0925603Z       ],
2026-06-10T07:08:01.0925892Z       "stages": {
2026-06-10T07:08:01.0926169Z         "doc": {
2026-06-10T07:08:01.0926464Z           "complete": true,
2026-06-10T07:08:01.0926756Z           "evidence": [
2026-06-10T07:08:01.0927056Z             {
2026-06-10T07:08:01.0927395Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0927695Z               "line": 151
2026-06-10T07:08:01.0927976Z             }
2026-06-10T07:08:01.0928263Z           ]
2026-06-10T07:08:01.0928543Z         },
2026-06-10T07:08:01.0928826Z         "impl": {
2026-06-10T07:08:01.0929223Z           "complete": true,
2026-06-10T07:08:01.0929509Z           "evidence": [
2026-06-10T07:08:01.0929799Z             {
2026-06-10T07:08:01.0930186Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0930477Z               "line": 22
2026-06-10T07:08:01.0930768Z             }
2026-06-10T07:08:01.0931052Z           ]
2026-06-10T07:08:01.0931340Z         },
2026-06-10T07:08:01.0931621Z         "int": {
2026-06-10T07:08:01.0931932Z           "complete": false,
2026-06-10T07:08:01.0932223Z           "evidence": []
2026-06-10T07:08:01.0932508Z         },
2026-06-10T07:08:01.0932791Z         "unit": {
2026-06-10T07:08:01.0933110Z           "complete": true,
2026-06-10T07:08:01.0933406Z           "evidence": [
2026-06-10T07:08:01.0933688Z             {
2026-06-10T07:08:01.0934083Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0934373Z               "line": 298
2026-06-10T07:08:01.0934654Z             }
2026-06-10T07:08:01.0934931Z           ]
2026-06-10T07:08:01.0935216Z         }
2026-06-10T07:08:01.0935497Z       }
2026-06-10T07:08:01.0935760Z     },
2026-06-10T07:08:01.0936045Z     {
2026-06-10T07:08:01.0936410Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-10T07:08:01.0937649Z       "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-10T07:08:01.0937955Z       "requiredStages": [
2026-06-10T07:08:01.0938245Z         "impl",
2026-06-10T07:08:01.0938523Z         "unit"
2026-06-10T07:08:01.0938795Z       ],
2026-06-10T07:08:01.0939155Z       "stages": {
2026-06-10T07:08:01.0939444Z         "doc": {
2026-06-10T07:08:01.0939740Z           "complete": true,
2026-06-10T07:08:01.0940030Z           "evidence": [
2026-06-10T07:08:01.0940311Z             {
2026-06-10T07:08:01.0940655Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0940936Z               "line": 145
2026-06-10T07:08:01.0941218Z             }
2026-06-10T07:08:01.0941498Z           ]
2026-06-10T07:08:01.0941777Z         },
2026-06-10T07:08:01.0942049Z         "impl": {
2026-06-10T07:08:01.0942354Z           "complete": true,
2026-06-10T07:08:01.0942650Z           "evidence": [
2026-06-10T07:08:01.0942927Z             {
2026-06-10T07:08:01.0943460Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.0943751Z               "line": 540
2026-06-10T07:08:01.0944032Z             },
2026-06-10T07:08:01.0944309Z             {
2026-06-10T07:08:01.0944727Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.0945018Z               "line": 184
2026-06-10T07:08:01.0945389Z             },
2026-06-10T07:08:01.0945676Z             {
2026-06-10T07:08:01.0946057Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.0946348Z               "line": 282
2026-06-10T07:08:01.0946629Z             },
2026-06-10T07:08:01.0946913Z             {
2026-06-10T07:08:01.0947279Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T07:08:01.0947566Z               "line": 15
2026-06-10T07:08:01.0947857Z             }
2026-06-10T07:08:01.0948133Z           ]
2026-06-10T07:08:01.0948415Z         },
2026-06-10T07:08:01.0948692Z         "int": {
2026-06-10T07:08:01.0949078Z           "complete": false,
2026-06-10T07:08:01.0949393Z           "evidence": []
2026-06-10T07:08:01.0949672Z         },
2026-06-10T07:08:01.0949956Z         "unit": {
2026-06-10T07:08:01.0950256Z           "complete": true,
2026-06-10T07:08:01.0950547Z           "evidence": [
2026-06-10T07:08:01.0950828Z             {
2026-06-10T07:08:01.0951249Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.0951545Z               "line": 856
2026-06-10T07:08:01.0951820Z             },
2026-06-10T07:08:01.0952100Z             {
2026-06-10T07:08:01.0952503Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-10T07:08:01.0952794Z               "line": 88
2026-06-10T07:08:01.0953075Z             },
2026-06-10T07:08:01.0953352Z             {
2026-06-10T07:08:01.0953743Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.0954034Z               "line": 802
2026-06-10T07:08:01.0954321Z             },
2026-06-10T07:08:01.0954601Z             {
2026-06-10T07:08:01.0955005Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.0955296Z               "line": 821
2026-06-10T07:08:01.0955578Z             },
2026-06-10T07:08:01.0955879Z             {
2026-06-10T07:08:01.0956423Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.0956733Z               "line": 278
2026-06-10T07:08:01.0957029Z             },
2026-06-10T07:08:01.0957313Z             {
2026-06-10T07:08:01.0957682Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T07:08:01.0957974Z               "line": 77
2026-06-10T07:08:01.0958259Z             },
2026-06-10T07:08:01.0958540Z             {
2026-06-10T07:08:01.0958908Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T07:08:01.0959295Z               "line": 94
2026-06-10T07:08:01.0959581Z             },
2026-06-10T07:08:01.0959877Z             {
2026-06-10T07:08:01.0960237Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-10T07:08:01.0960535Z               "line": 114
2026-06-10T07:08:01.0960811Z             }
2026-06-10T07:08:01.0964696Z           ]
2026-06-10T07:08:01.0965049Z         }
2026-06-10T07:08:01.0965443Z       }
2026-06-10T07:08:01.0965724Z     },
2026-06-10T07:08:01.0966000Z     {
2026-06-10T07:08:01.0966377Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-10T07:08:01.0970297Z       "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-10T07:08:01.0970616Z       "requiredStages": [
2026-06-10T07:08:01.0970901Z         "doc",
2026-06-10T07:08:01.0971177Z         "impl",
2026-06-10T07:08:01.0971459Z         "unit"
2026-06-10T07:08:01.0971740Z       ],
2026-06-10T07:08:01.0972230Z       "stages": {
2026-06-10T07:08:01.0972506Z         "doc": {
2026-06-10T07:08:01.0972807Z           "complete": true,
2026-06-10T07:08:01.0973094Z           "evidence": [
2026-06-10T07:08:01.0973369Z             {
2026-06-10T07:08:01.0973715Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.0974006Z               "line": 157
2026-06-10T07:08:01.0974387Z             }
2026-06-10T07:08:01.0974655Z           ]
2026-06-10T07:08:01.0974931Z         },
2026-06-10T07:08:01.0975556Z         "impl": {
2026-06-10T07:08:01.0975866Z           "complete": true,
2026-06-10T07:08:01.0976154Z           "evidence": [
2026-06-10T07:08:01.0976426Z             {
2026-06-10T07:08:01.0976818Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.0977108Z               "line": 394
2026-06-10T07:08:01.0977390Z             },
2026-06-10T07:08:01.0977662Z             {
2026-06-10T07:08:01.0978072Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.0978381Z               "line": 484
2026-06-10T07:08:01.0978650Z             },
2026-06-10T07:08:01.0978922Z             {
2026-06-10T07:08:01.0979419Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.0979709Z               "line": 491
2026-06-10T07:08:01.0979990Z             },
2026-06-10T07:08:01.0980257Z             {
2026-06-10T07:08:01.0980639Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.0980929Z               "line": 211
2026-06-10T07:08:01.0981200Z             }
2026-06-10T07:08:01.0981470Z           ]
2026-06-10T07:08:01.0981742Z         },
2026-06-10T07:08:01.0982024Z         "int": {
2026-06-10T07:08:01.0982314Z           "complete": false,
2026-06-10T07:08:01.0982600Z           "evidence": []
2026-06-10T07:08:01.0982867Z         },
2026-06-10T07:08:01.0983147Z         "unit": {
2026-06-10T07:08:01.0983443Z           "complete": true,
2026-06-10T07:08:01.0983734Z           "evidence": [
2026-06-10T07:08:01.0984027Z             {
2026-06-10T07:08:01.0984422Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.0984722Z               "line": 1484
2026-06-10T07:08:01.0984990Z             },
2026-06-10T07:08:01.0985271Z             {
2026-06-10T07:08:01.0985672Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.0985957Z               "line": 1542
2026-06-10T07:08:01.0986229Z             },
2026-06-10T07:08:01.0986498Z             {
2026-06-10T07:08:01.0986883Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.0987159Z               "line": 834
2026-06-10T07:08:01.0987441Z             }
2026-06-10T07:08:01.0987716Z           ]
2026-06-10T07:08:01.0987983Z         }
2026-06-10T07:08:01.0988260Z       }
2026-06-10T07:08:01.0988531Z     },
2026-06-10T07:08:01.0988812Z     {
2026-06-10T07:08:01.0989248Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-10T07:08:01.0989844Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-10T07:08:01.0990164Z       "requiredStages": [
2026-06-10T07:08:01.0990436Z         "impl",
2026-06-10T07:08:01.0990727Z         "unit"
2026-06-10T07:08:01.0990999Z       ],
2026-06-10T07:08:01.0991290Z       "stages": {
2026-06-10T07:08:01.0991562Z         "doc": {
2026-06-10T07:08:01.0991860Z           "complete": false,
2026-06-10T07:08:01.0992153Z           "evidence": []
2026-06-10T07:08:01.0992429Z         },
2026-06-10T07:08:01.0992721Z         "impl": {
2026-06-10T07:08:01.0993017Z           "complete": true,
2026-06-10T07:08:01.0993307Z           "evidence": [
2026-06-10T07:08:01.0993589Z             {
2026-06-10T07:08:01.0993951Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T07:08:01.0994252Z               "line": 15
2026-06-10T07:08:01.0994532Z             },
2026-06-10T07:08:01.0994811Z             {
2026-06-10T07:08:01.0995188Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0995484Z               "line": 55
2026-06-10T07:08:01.0995894Z             },
2026-06-10T07:08:01.0996184Z             {
2026-06-10T07:08:01.0996565Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0996851Z               "line": 66
2026-06-10T07:08:01.0997146Z             },
2026-06-10T07:08:01.0997429Z             {
2026-06-10T07:08:01.0997928Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0998219Z               "line": 115
2026-06-10T07:08:01.0998495Z             },
2026-06-10T07:08:01.0998782Z             {
2026-06-10T07:08:01.0999240Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.0999766Z               "line": 138
2026-06-10T07:08:01.1000042Z             }
2026-06-10T07:08:01.1000329Z           ]
2026-06-10T07:08:01.1000610Z         },
2026-06-10T07:08:01.1000887Z         "int": {
2026-06-10T07:08:01.1001192Z           "complete": false,
2026-06-10T07:08:01.1001483Z           "evidence": []
2026-06-10T07:08:01.1001764Z         },
2026-06-10T07:08:01.1002054Z         "unit": {
2026-06-10T07:08:01.1002353Z           "complete": true,
2026-06-10T07:08:01.1002642Z           "evidence": [
2026-06-10T07:08:01.1002924Z             {
2026-06-10T07:08:01.1003286Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T07:08:01.1003619Z               "line": 149
2026-06-10T07:08:01.1003901Z             },
2026-06-10T07:08:01.1004182Z             {
2026-06-10T07:08:01.1004544Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T07:08:01.1004835Z               "line": 155
2026-06-10T07:08:01.1005115Z             },
2026-06-10T07:08:01.1005396Z             {
2026-06-10T07:08:01.1005752Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T07:08:01.1006049Z               "line": 169
2026-06-10T07:08:01.1006325Z             },
2026-06-10T07:08:01.1006607Z             {
2026-06-10T07:08:01.1006965Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T07:08:01.1007255Z               "line": 178
2026-06-10T07:08:01.1007537Z             },
2026-06-10T07:08:01.1007825Z             {
2026-06-10T07:08:01.1008337Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.1008680Z               "line": 195
2026-06-10T07:08:01.1009055Z             },
2026-06-10T07:08:01.1009337Z             {
2026-06-10T07:08:01.1009718Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.1010027Z               "line": 208
2026-06-10T07:08:01.1010307Z             },
2026-06-10T07:08:01.1010588Z             {
2026-06-10T07:08:01.1010964Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.1011241Z               "line": 271
2026-06-10T07:08:01.1011513Z             },
2026-06-10T07:08:01.1011799Z             {
2026-06-10T07:08:01.1012176Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.1012467Z               "line": 290
2026-06-10T07:08:01.1012796Z             },
2026-06-10T07:08:01.1013061Z             {
2026-06-10T07:08:01.1013436Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.1013742Z               "line": 319
2026-06-10T07:08:01.1014013Z             }
2026-06-10T07:08:01.1014295Z           ]
2026-06-10T07:08:01.1014571Z         }
2026-06-10T07:08:01.1014852Z       }
2026-06-10T07:08:01.1015129Z     },
2026-06-10T07:08:01.1015405Z     {
2026-06-10T07:08:01.1015759Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-10T07:08:01.1016585Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-10T07:08:01.1016895Z       "requiredStages": [
2026-06-10T07:08:01.1017176Z         "impl",
2026-06-10T07:08:01.1017462Z         "unit",
2026-06-10T07:08:01.1017743Z         "int"
2026-06-10T07:08:01.1018019Z       ],
2026-06-10T07:08:01.1018309Z       "stages": {
2026-06-10T07:08:01.1018587Z         "doc": {
2026-06-10T07:08:01.1018892Z           "complete": false,
2026-06-10T07:08:01.1019272Z           "evidence": []
2026-06-10T07:08:01.1019549Z         },
2026-06-10T07:08:01.1019959Z         "impl": {
2026-06-10T07:08:01.1020259Z           "complete": true,
2026-06-10T07:08:01.1020554Z           "evidence": [
2026-06-10T07:08:01.1020829Z             {
2026-06-10T07:08:01.1021205Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.1021491Z               "line": 302
2026-06-10T07:08:01.1021778Z             },
2026-06-10T07:08:01.1022168Z             {
2026-06-10T07:08:01.1022531Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.1022817Z               "line": 684
2026-06-10T07:08:01.1023088Z             },
2026-06-10T07:08:01.1023374Z             {
2026-06-10T07:08:01.1023739Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.1024039Z               "line": 707
2026-06-10T07:08:01.1024306Z             },
2026-06-10T07:08:01.1024583Z             {
2026-06-10T07:08:01.1024945Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.1025231Z               "line": 731
2026-06-10T07:08:01.1025523Z             },
2026-06-10T07:08:01.1025785Z             {
2026-06-10T07:08:01.1026150Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.1026434Z               "line": 607
2026-06-10T07:08:01.1026700Z             },
2026-06-10T07:08:01.1026982Z             {
2026-06-10T07:08:01.1027354Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.1027659Z               "line": 719
2026-06-10T07:08:01.1027931Z             },
2026-06-10T07:08:01.1028212Z             {
2026-06-10T07:08:01.1028584Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.1028879Z               "line": 829
2026-06-10T07:08:01.1029246Z             },
2026-06-10T07:08:01.1029518Z             {
2026-06-10T07:08:01.1029889Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.1030180Z               "line": 877
2026-06-10T07:08:01.1030463Z             },
2026-06-10T07:08:01.1030743Z             {
2026-06-10T07:08:01.1031119Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T07:08:01.1031436Z               "line": 46
2026-06-10T07:08:01.1031713Z             },
2026-06-10T07:08:01.1031999Z             {
2026-06-10T07:08:01.1032366Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T07:08:01.1032657Z               "line": 167
2026-06-10T07:08:01.1032934Z             },
2026-06-10T07:08:01.1033225Z             {
2026-06-10T07:08:01.1033587Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-10T07:08:01.1033874Z               "line": 71
2026-06-10T07:08:01.1034158Z             },
2026-06-10T07:08:01.1034437Z             {
2026-06-10T07:08:01.1034805Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.1035096Z               "line": 134
2026-06-10T07:08:01.1035372Z             },
2026-06-10T07:08:01.1035662Z             {
2026-06-10T07:08:01.1036006Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.1036306Z               "line": 180
2026-06-10T07:08:01.1036577Z             }
2026-06-10T07:08:01.1036870Z           ]
2026-06-10T07:08:01.1037143Z         },
2026-06-10T07:08:01.1037429Z         "int": {
2026-06-10T07:08:01.1037729Z           "complete": true,
2026-06-10T07:08:01.1038020Z           "evidence": [
2026-06-10T07:08:01.1038306Z             {
2026-06-10T07:08:01.1038715Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-10T07:08:01.1039068Z               "line": 27
2026-06-10T07:08:01.1039355Z             },
2026-06-10T07:08:01.1039636Z             {
2026-06-10T07:08:01.1040036Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-10T07:08:01.1040321Z               "line": 129
2026-06-10T07:08:01.1040608Z             },
2026-06-10T07:08:01.1040885Z             {
2026-06-10T07:08:01.1041285Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-10T07:08:01.1041581Z               "line": 200
2026-06-10T07:08:01.1041860Z             }
2026-06-10T07:08:01.1042144Z           ]
2026-06-10T07:08:01.1042421Z         },
2026-06-10T07:08:01.1042818Z         "unit": {
2026-06-10T07:08:01.1043113Z           "complete": true,
2026-06-10T07:08:01.1043408Z           "evidence": [
2026-06-10T07:08:01.1043694Z             {
2026-06-10T07:08:01.1044067Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T07:08:01.1044362Z               "line": 313
2026-06-10T07:08:01.1044737Z             },
2026-06-10T07:08:01.1045021Z             {
2026-06-10T07:08:01.1045398Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T07:08:01.1045694Z               "line": 345
2026-06-10T07:08:01.1045985Z             },
2026-06-10T07:08:01.1046251Z             {
2026-06-10T07:08:01.1046629Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-10T07:08:01.1046924Z               "line": 366
2026-06-10T07:08:01.1047203Z             },
2026-06-10T07:08:01.1047468Z             {
2026-06-10T07:08:01.1047855Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T07:08:01.1048150Z               "line": 254
2026-06-10T07:08:01.1048436Z             },
2026-06-10T07:08:01.1048732Z             {
2026-06-10T07:08:01.1049196Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-10T07:08:01.1049491Z               "line": 239
2026-06-10T07:08:01.1049768Z             },
2026-06-10T07:08:01.1050051Z             {
2026-06-10T07:08:01.1050438Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-10T07:08:01.1050729Z               "line": 230
2026-06-10T07:08:01.1051014Z             },
2026-06-10T07:08:01.1051287Z             {
2026-06-10T07:08:01.1051653Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.1051935Z               "line": 488
2026-06-10T07:08:01.1052216Z             },
2026-06-10T07:08:01.1052491Z             {
2026-06-10T07:08:01.1052843Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.1053134Z               "line": 518
2026-06-10T07:08:01.1053406Z             }
2026-06-10T07:08:01.1053683Z           ]
2026-06-10T07:08:01.1053964Z         }
2026-06-10T07:08:01.1054235Z       }
2026-06-10T07:08:01.1054511Z     },
2026-06-10T07:08:01.1054783Z     {
2026-06-10T07:08:01.1055159Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-10T07:08:01.1060066Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-10T07:08:01.1060381Z       "requiredStages": [
2026-06-10T07:08:01.1060669Z         "doc"
2026-06-10T07:08:01.1060950Z       ],
2026-06-10T07:08:01.1061245Z       "stages": {
2026-06-10T07:08:01.1061522Z         "doc": {
2026-06-10T07:08:01.1061837Z           "complete": true,
2026-06-10T07:08:01.1062138Z           "evidence": [
2026-06-10T07:08:01.1062414Z             {
2026-06-10T07:08:01.1062762Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.1063046Z               "line": 296
2026-06-10T07:08:01.1063336Z             }
2026-06-10T07:08:01.1063613Z           ]
2026-06-10T07:08:01.1063914Z         },
2026-06-10T07:08:01.1064200Z         "impl": {
2026-06-10T07:08:01.1064499Z           "complete": false,
2026-06-10T07:08:01.1064795Z           "evidence": []
2026-06-10T07:08:01.1065071Z         },
2026-06-10T07:08:01.1065353Z         "int": {
2026-06-10T07:08:01.1065700Z           "complete": false,
2026-06-10T07:08:01.1066012Z           "evidence": []
2026-06-10T07:08:01.1066294Z         },
2026-06-10T07:08:01.1066556Z         "unit": {
2026-06-10T07:08:01.1066857Z           "complete": false,
2026-06-10T07:08:01.1067143Z           "evidence": []
2026-06-10T07:08:01.1067420Z         }
2026-06-10T07:08:01.1067811Z       }
2026-06-10T07:08:01.1068093Z     },
2026-06-10T07:08:01.1068366Z     {
2026-06-10T07:08:01.1068718Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-10T07:08:01.1069381Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-10T07:08:01.1069682Z       "requiredStages": [
2026-06-10T07:08:01.1069967Z         "impl",
2026-06-10T07:08:01.1070353Z         "unit"
2026-06-10T07:08:01.1070636Z       ],
2026-06-10T07:08:01.1070921Z       "stages": {
2026-06-10T07:08:01.1071200Z         "doc": {
2026-06-10T07:08:01.1071505Z           "complete": false,
2026-06-10T07:08:01.1071796Z           "evidence": []
2026-06-10T07:08:01.1072082Z         },
2026-06-10T07:08:01.1072364Z         "impl": {
2026-06-10T07:08:01.1072669Z           "complete": true,
2026-06-10T07:08:01.1072965Z           "evidence": [
2026-06-10T07:08:01.1073247Z             {
2026-06-10T07:08:01.1073658Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1073949Z               "line": 56
2026-06-10T07:08:01.1074240Z             },
2026-06-10T07:08:01.1074517Z             {
2026-06-10T07:08:01.1074926Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1075217Z               "line": 65
2026-06-10T07:08:01.1075494Z             },
2026-06-10T07:08:01.1075776Z             {
2026-06-10T07:08:01.1076189Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1076483Z               "line": 72
2026-06-10T07:08:01.1076764Z             },
2026-06-10T07:08:01.1077045Z             {
2026-06-10T07:08:01.1077417Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1077713Z               "line": 33
2026-06-10T07:08:01.1077994Z             },
2026-06-10T07:08:01.1078266Z             {
2026-06-10T07:08:01.1078638Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1078927Z               "line": 65
2026-06-10T07:08:01.1079297Z             },
2026-06-10T07:08:01.1079578Z             {
2026-06-10T07:08:01.1079946Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1080237Z               "line": 74
2026-06-10T07:08:01.1080518Z             },
2026-06-10T07:08:01.1080803Z             {
2026-06-10T07:08:01.1081167Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1081463Z               "line": 83
2026-06-10T07:08:01.1081760Z             },
2026-06-10T07:08:01.1082037Z             {
2026-06-10T07:08:01.1082404Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1082690Z               "line": 92
2026-06-10T07:08:01.1082971Z             },
2026-06-10T07:08:01.1083244Z             {
2026-06-10T07:08:01.1083611Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1083911Z               "line": 101
2026-06-10T07:08:01.1084190Z             },
2026-06-10T07:08:01.1084476Z             {
2026-06-10T07:08:01.1084866Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1085162Z               "line": 112
2026-06-10T07:08:01.1085439Z             },
2026-06-10T07:08:01.1085701Z             {
2026-06-10T07:08:01.1086068Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1086355Z               "line": 130
2026-06-10T07:08:01.1086636Z             },
2026-06-10T07:08:01.1086915Z             {
2026-06-10T07:08:01.1087290Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1087586Z               "line": 139
2026-06-10T07:08:01.1087862Z             },
2026-06-10T07:08:01.1088138Z             {
2026-06-10T07:08:01.1088506Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1088802Z               "line": 148
2026-06-10T07:08:01.1089165Z             },
2026-06-10T07:08:01.1089453Z             {
2026-06-10T07:08:01.1089814Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1090090Z               "line": 159
2026-06-10T07:08:01.1090419Z             },
2026-06-10T07:08:01.1090686Z             {
2026-06-10T07:08:01.1091173Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1091465Z               "line": 167
2026-06-10T07:08:01.1091741Z             },
2026-06-10T07:08:01.1092028Z             {
2026-06-10T07:08:01.1092388Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1092678Z               "line": 176
2026-06-10T07:08:01.1093070Z             },
2026-06-10T07:08:01.1093352Z             {
2026-06-10T07:08:01.1093714Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1094005Z               "line": 185
2026-06-10T07:08:01.1094286Z             },
2026-06-10T07:08:01.1094565Z             {
2026-06-10T07:08:01.1094935Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1095212Z               "line": 194
2026-06-10T07:08:01.1095492Z             },
2026-06-10T07:08:01.1095760Z             {
2026-06-10T07:08:01.1096122Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1096423Z               "line": 206
2026-06-10T07:08:01.1096724Z             },
2026-06-10T07:08:01.1097009Z             {
2026-06-10T07:08:01.1097361Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1097655Z               "line": 213
2026-06-10T07:08:01.1097922Z             },
2026-06-10T07:08:01.1098199Z             {
2026-06-10T07:08:01.1098570Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1098861Z               "line": 222
2026-06-10T07:08:01.1099276Z             },
2026-06-10T07:08:01.1099543Z             {
2026-06-10T07:08:01.1099890Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1100179Z               "line": 229
2026-06-10T07:08:01.1100455Z             },
2026-06-10T07:08:01.1100728Z             {
2026-06-10T07:08:01.1101090Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1101381Z               "line": 296
2026-06-10T07:08:01.1101657Z             },
2026-06-10T07:08:01.1101933Z             {
2026-06-10T07:08:01.1102287Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1102583Z               "line": 308
2026-06-10T07:08:01.1102857Z             },
2026-06-10T07:08:01.1103124Z             {
2026-06-10T07:08:01.1103491Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1103777Z               "line": 395
2026-06-10T07:08:01.1104049Z             }
2026-06-10T07:08:01.1104335Z           ]
2026-06-10T07:08:01.1104603Z         },
2026-06-10T07:08:01.1104885Z         "int": {
2026-06-10T07:08:01.1105188Z           "complete": false,
2026-06-10T07:08:01.1105476Z           "evidence": []
2026-06-10T07:08:01.1105752Z         },
2026-06-10T07:08:01.1106039Z         "unit": {
2026-06-10T07:08:01.1106329Z           "complete": true,
2026-06-10T07:08:01.1106620Z           "evidence": [
2026-06-10T07:08:01.1106897Z             {
2026-06-10T07:08:01.1107255Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1107545Z               "line": 477
2026-06-10T07:08:01.1107823Z             },
2026-06-10T07:08:01.1108112Z             {
2026-06-10T07:08:01.1108473Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1108764Z               "line": 518
2026-06-10T07:08:01.1109116Z             },
2026-06-10T07:08:01.1109393Z             {
2026-06-10T07:08:01.1109774Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1110061Z               "line": 531
2026-06-10T07:08:01.1110347Z             },
2026-06-10T07:08:01.1110626Z             {
2026-06-10T07:08:01.1110982Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1111273Z               "line": 617
2026-06-10T07:08:01.1111549Z             }
2026-06-10T07:08:01.1111835Z           ]
2026-06-10T07:08:01.1112106Z         }
2026-06-10T07:08:01.1112393Z       }
2026-06-10T07:08:01.1112669Z     },
2026-06-10T07:08:01.1112942Z     {
2026-06-10T07:08:01.1113280Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-10T07:08:01.1113876Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-10T07:08:01.1114346Z       "requiredStages": [
2026-06-10T07:08:01.1114628Z         "impl",
2026-06-10T07:08:01.1114909Z         "unit"
2026-06-10T07:08:01.1115191Z       ],
2026-06-10T07:08:01.1115474Z       "stages": {
2026-06-10T07:08:01.1115757Z         "doc": {
2026-06-10T07:08:01.1116055Z           "complete": false,
2026-06-10T07:08:01.1116457Z           "evidence": []
2026-06-10T07:08:01.1116724Z         },
2026-06-10T07:08:01.1117005Z         "impl": {
2026-06-10T07:08:01.1117310Z           "complete": true,
2026-06-10T07:08:01.1117600Z           "evidence": [
2026-06-10T07:08:01.1117882Z             {
2026-06-10T07:08:01.1118255Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.1118552Z               "line": 143
2026-06-10T07:08:01.1119242Z             },
2026-06-10T07:08:01.1119624Z             {
2026-06-10T07:08:01.1120015Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.1120296Z               "line": 148
2026-06-10T07:08:01.1120583Z             }
2026-06-10T07:08:01.1120860Z           ]
2026-06-10T07:08:01.1121138Z         },
2026-06-10T07:08:01.1121412Z         "int": {
2026-06-10T07:08:01.1121713Z           "complete": false,
2026-06-10T07:08:01.1122018Z           "evidence": []
2026-06-10T07:08:01.1122291Z         },
2026-06-10T07:08:01.1122581Z         "unit": {
2026-06-10T07:08:01.1122882Z           "complete": true,
2026-06-10T07:08:01.1123182Z           "evidence": [
2026-06-10T07:08:01.1123450Z             {
2026-06-10T07:08:01.1123812Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.1124107Z               "line": 264
2026-06-10T07:08:01.1124383Z             },
2026-06-10T07:08:01.1124659Z             {
2026-06-10T07:08:01.1125032Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.1125328Z               "line": 544
2026-06-10T07:08:01.1125603Z             },
2026-06-10T07:08:01.1125879Z             {
2026-06-10T07:08:01.1126265Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.1126557Z               "line": 557
2026-06-10T07:08:01.1126844Z             }
2026-06-10T07:08:01.1127120Z           ]
2026-06-10T07:08:01.1127403Z         }
2026-06-10T07:08:01.1127679Z       }
2026-06-10T07:08:01.1127965Z     },
2026-06-10T07:08:01.1128243Z     {
2026-06-10T07:08:01.1128684Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-10T07:08:01.1129265Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-10T07:08:01.1129612Z       "requiredStages": [
2026-06-10T07:08:01.1129898Z         "impl",
2026-06-10T07:08:01.1130179Z         "unit"
2026-06-10T07:08:01.1130456Z       ],
2026-06-10T07:08:01.1130742Z       "stages": {
2026-06-10T07:08:01.1131013Z         "doc": {
2026-06-10T07:08:01.1131319Z           "complete": false,
2026-06-10T07:08:01.1131608Z           "evidence": []
2026-06-10T07:08:01.1131878Z         },
2026-06-10T07:08:01.1132160Z         "impl": {
2026-06-10T07:08:01.1132465Z           "complete": true,
2026-06-10T07:08:01.1132775Z           "evidence": [
2026-06-10T07:08:01.1133042Z             {
2026-06-10T07:08:01.1133418Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.1133710Z               "line": 114
2026-06-10T07:08:01.1133991Z             },
2026-06-10T07:08:01.1134268Z             {
2026-06-10T07:08:01.1134677Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.1134967Z               "line": 481
2026-06-10T07:08:01.1135244Z             }
2026-06-10T07:08:01.1135529Z           ]
2026-06-10T07:08:01.1135805Z         },
2026-06-10T07:08:01.1136087Z         "int": {
2026-06-10T07:08:01.1136387Z           "complete": false,
2026-06-10T07:08:01.1136682Z           "evidence": []
2026-06-10T07:08:01.1136967Z         },
2026-06-10T07:08:01.1137272Z         "unit": {
2026-06-10T07:08:01.1137572Z           "complete": true,
2026-06-10T07:08:01.1137891Z           "evidence": [
2026-06-10T07:08:01.1138173Z             {
2026-06-10T07:08:01.1138549Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.1139174Z               "line": 515
2026-06-10T07:08:01.1139466Z             }
2026-06-10T07:08:01.1139740Z           ]
2026-06-10T07:08:01.1140019Z         }
2026-06-10T07:08:01.1140300Z       }
2026-06-10T07:08:01.1140576Z     },
2026-06-10T07:08:01.1140844Z     {
2026-06-10T07:08:01.1141312Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-10T07:08:01.1141874Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-10T07:08:01.1142178Z       "requiredStages": [
2026-06-10T07:08:01.1142457Z         "impl",
2026-06-10T07:08:01.1142739Z         "unit"
2026-06-10T07:08:01.1143020Z       ],
2026-06-10T07:08:01.1143301Z       "stages": {
2026-06-10T07:08:01.1143588Z         "doc": {
2026-06-10T07:08:01.1143888Z           "complete": false,
2026-06-10T07:08:01.1144179Z           "evidence": []
2026-06-10T07:08:01.1144454Z         },
2026-06-10T07:08:01.1144732Z         "impl": {
2026-06-10T07:08:01.1145031Z           "complete": true,
2026-06-10T07:08:01.1145331Z           "evidence": [
2026-06-10T07:08:01.1145603Z             {
2026-06-10T07:08:01.1146013Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1146318Z               "line": 459
2026-06-10T07:08:01.1146604Z             },
2026-06-10T07:08:01.1146877Z             {
2026-06-10T07:08:01.1147261Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.1147551Z               "line": 28
2026-06-10T07:08:01.1147837Z             }
2026-06-10T07:08:01.1148123Z           ]
2026-06-10T07:08:01.1148395Z         },
2026-06-10T07:08:01.1148686Z         "int": {
2026-06-10T07:08:01.1149053Z           "complete": false,
2026-06-10T07:08:01.1149368Z           "evidence": []
2026-06-10T07:08:01.1149644Z         },
2026-06-10T07:08:01.1149930Z         "unit": {
2026-06-10T07:08:01.1150228Z           "complete": true,
2026-06-10T07:08:01.1150517Z           "evidence": [
2026-06-10T07:08:01.1150803Z             {
2026-06-10T07:08:01.1151175Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.1151470Z               "line": 229
2026-06-10T07:08:01.1151752Z             }
2026-06-10T07:08:01.1152033Z           ]
2026-06-10T07:08:01.1152319Z         }
2026-06-10T07:08:01.1152592Z       }
2026-06-10T07:08:01.1152881Z     },
2026-06-10T07:08:01.1153160Z     {
2026-06-10T07:08:01.1153509Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-10T07:08:01.1153923Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-10T07:08:01.1154238Z       "requiredStages": [],
2026-06-10T07:08:01.1154524Z       "stages": {
2026-06-10T07:08:01.1154806Z         "doc": {
2026-06-10T07:08:01.1155112Z           "complete": false,
2026-06-10T07:08:01.1155402Z           "evidence": []
2026-06-10T07:08:01.1155676Z         },
2026-06-10T07:08:01.1155957Z         "impl": {
2026-06-10T07:08:01.1156249Z           "complete": false,
2026-06-10T07:08:01.1156545Z           "evidence": []
2026-06-10T07:08:01.1156817Z         },
2026-06-10T07:08:01.1157108Z         "int": {
2026-06-10T07:08:01.1157394Z           "complete": false,
2026-06-10T07:08:01.1157700Z           "evidence": []
2026-06-10T07:08:01.1157964Z         },
2026-06-10T07:08:01.1158248Z         "unit": {
2026-06-10T07:08:01.1158543Z           "complete": false,
2026-06-10T07:08:01.1158820Z           "evidence": []
2026-06-10T07:08:01.1159177Z         }
2026-06-10T07:08:01.1159454Z       }
2026-06-10T07:08:01.1159717Z     },
2026-06-10T07:08:01.1159984Z     {
2026-06-10T07:08:01.1160327Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-10T07:08:01.1160793Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-10T07:08:01.1161091Z       "requiredStages": [
2026-06-10T07:08:01.1161377Z         "impl",
2026-06-10T07:08:01.1161654Z         "unit"
2026-06-10T07:08:01.1161931Z       ],
2026-06-10T07:08:01.1162213Z       "stages": {
2026-06-10T07:08:01.1162499Z         "doc": {
2026-06-10T07:08:01.1162804Z           "complete": false,
2026-06-10T07:08:01.1163204Z           "evidence": []
2026-06-10T07:08:01.1163484Z         },
2026-06-10T07:08:01.1163763Z         "impl": {
2026-06-10T07:08:01.1164064Z           "complete": true,
2026-06-10T07:08:01.1164350Z           "evidence": [
2026-06-10T07:08:01.1164621Z             {
2026-06-10T07:08:01.1164969Z               "path": "crates/spt-live/src/turn.rs",
2026-06-10T07:08:01.1165362Z               "line": 19
2026-06-10T07:08:01.1165648Z             },
2026-06-10T07:08:01.1165919Z             {
2026-06-10T07:08:01.1166304Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.1166594Z               "line": 347
2026-06-10T07:08:01.1166875Z             },
2026-06-10T07:08:01.1167157Z             {
2026-06-10T07:08:01.1167534Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.1167829Z               "line": 383
2026-06-10T07:08:01.1168106Z             },
2026-06-10T07:08:01.1168387Z             {
2026-06-10T07:08:01.1168751Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T07:08:01.1169137Z               "line": 15
2026-06-10T07:08:01.1169423Z             },
2026-06-10T07:08:01.1169695Z             {
2026-06-10T07:08:01.1170067Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T07:08:01.1170348Z               "line": 48
2026-06-10T07:08:01.1170635Z             },
2026-06-10T07:08:01.1170916Z             {
2026-06-10T07:08:01.1171287Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T07:08:01.1171585Z               "line": 119
2026-06-10T07:08:01.1171862Z             },
2026-06-10T07:08:01.1172143Z             {
2026-06-10T07:08:01.1172463Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1172759Z               "line": 2840
2026-06-10T07:08:01.1173026Z             }
2026-06-10T07:08:01.1173297Z           ]
2026-06-10T07:08:01.1173583Z         },
2026-06-10T07:08:01.1173858Z         "int": {
2026-06-10T07:08:01.1174161Z           "complete": false,
2026-06-10T07:08:01.1177183Z           "evidence": []
2026-06-10T07:08:01.1177513Z         },
2026-06-10T07:08:01.1177798Z         "unit": {
2026-06-10T07:08:01.1178109Z           "complete": true,
2026-06-10T07:08:01.1178409Z           "evidence": [
2026-06-10T07:08:01.1178685Z             {
2026-06-10T07:08:01.1179193Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.1179498Z               "line": 496
2026-06-10T07:08:01.1179789Z             },
2026-06-10T07:08:01.1180066Z             {
2026-06-10T07:08:01.1180442Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T07:08:01.1180737Z               "line": 165
2026-06-10T07:08:01.1181024Z             },
2026-06-10T07:08:01.1181310Z             {
2026-06-10T07:08:01.1181682Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-10T07:08:01.1181981Z               "line": 175
2026-06-10T07:08:01.1182254Z             }
2026-06-10T07:08:01.1182545Z           ]
2026-06-10T07:08:01.1182821Z         }
2026-06-10T07:08:01.1183094Z       }
2026-06-10T07:08:01.1183380Z     },
2026-06-10T07:08:01.1183648Z     {
2026-06-10T07:08:01.1183996Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-10T07:08:01.1186477Z       "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-10T07:08:01.1186787Z       "requiredStages": [
2026-06-10T07:08:01.1187083Z         "impl",
2026-06-10T07:08:01.1187361Z         "unit"
2026-06-10T07:08:01.1187643Z       ],
2026-06-10T07:08:01.1187919Z       "stages": {
2026-06-10T07:08:01.1188206Z         "doc": {
2026-06-10T07:08:01.1188511Z           "complete": false,
2026-06-10T07:08:01.1188802Z           "evidence": []
2026-06-10T07:08:01.1189159Z         },
2026-06-10T07:08:01.1189445Z         "impl": {
2026-06-10T07:08:01.1189749Z           "complete": true,
2026-06-10T07:08:01.1190034Z           "evidence": [
2026-06-10T07:08:01.1190501Z             {
2026-06-10T07:08:01.1190848Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1191135Z               "line": 2598
2026-06-10T07:08:01.1191426Z             },
2026-06-10T07:08:01.1191702Z             {
2026-06-10T07:08:01.1192059Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.1192449Z               "line": 103
2026-06-10T07:08:01.1192729Z             },
2026-06-10T07:08:01.1193010Z             {
2026-06-10T07:08:01.1193363Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.1193654Z               "line": 135
2026-06-10T07:08:01.1193926Z             }
2026-06-10T07:08:01.1194203Z           ]
2026-06-10T07:08:01.1194480Z         },
2026-06-10T07:08:01.1194762Z         "int": {
2026-06-10T07:08:01.1195059Z           "complete": false,
2026-06-10T07:08:01.1195348Z           "evidence": []
2026-06-10T07:08:01.1195643Z         },
2026-06-10T07:08:01.1195920Z         "unit": {
2026-06-10T07:08:01.1196221Z           "complete": true,
2026-06-10T07:08:01.1196506Z           "evidence": [
2026-06-10T07:08:01.1196779Z             {
2026-06-10T07:08:01.1197136Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.1197423Z               "line": 258
2026-06-10T07:08:01.1197700Z             },
2026-06-10T07:08:01.1197965Z             {
2026-06-10T07:08:01.1198333Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.1198624Z               "line": 283
2026-06-10T07:08:01.1198895Z             },
2026-06-10T07:08:01.1199258Z             {
2026-06-10T07:08:01.1199611Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.1199897Z               "line": 296
2026-06-10T07:08:01.1200171Z             },
2026-06-10T07:08:01.1200445Z             {
2026-06-10T07:08:01.1200793Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.1201089Z               "line": 308
2026-06-10T07:08:01.1201366Z             }
2026-06-10T07:08:01.1201633Z           ]
2026-06-10T07:08:01.1201924Z         }
2026-06-10T07:08:01.1202192Z       }
2026-06-10T07:08:01.1202474Z     },
2026-06-10T07:08:01.1202750Z     {
2026-06-10T07:08:01.1203091Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-10T07:08:01.1203575Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-10T07:08:01.1203881Z       "requiredStages": [
2026-06-10T07:08:01.1204171Z         "impl",
2026-06-10T07:08:01.1204453Z         "unit"
2026-06-10T07:08:01.1204739Z       ],
2026-06-10T07:08:01.1205031Z       "stages": {
2026-06-10T07:08:01.1205307Z         "doc": {
2026-06-10T07:08:01.1205614Z           "complete": false,
2026-06-10T07:08:01.1205908Z           "evidence": []
2026-06-10T07:08:01.1206246Z         },
2026-06-10T07:08:01.1206571Z         "impl": {
2026-06-10T07:08:01.1206977Z           "complete": true,
2026-06-10T07:08:01.1207339Z           "evidence": [
2026-06-10T07:08:01.1207611Z             {
2026-06-10T07:08:01.1207978Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.1208279Z               "line": 35
2026-06-10T07:08:01.1208558Z             }
2026-06-10T07:08:01.1208835Z           ]
2026-06-10T07:08:01.1209222Z         },
2026-06-10T07:08:01.1209565Z         "int": {
2026-06-10T07:08:01.1209866Z           "complete": false,
2026-06-10T07:08:01.1210162Z           "evidence": []
2026-06-10T07:08:01.1210433Z         },
2026-06-10T07:08:01.1210726Z         "unit": {
2026-06-10T07:08:01.1211019Z           "complete": true,
2026-06-10T07:08:01.1211316Z           "evidence": [
2026-06-10T07:08:01.1211592Z             {
2026-06-10T07:08:01.1211969Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-10T07:08:01.1212259Z               "line": 220
2026-06-10T07:08:01.1212532Z             }
2026-06-10T07:08:01.1212808Z           ]
2026-06-10T07:08:01.1213081Z         }
2026-06-10T07:08:01.1213353Z       }
2026-06-10T07:08:01.1213632Z     },
2026-06-10T07:08:01.1213896Z     {
2026-06-10T07:08:01.1214235Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-10T07:08:01.1215179Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-10T07:08:01.1215499Z       "requiredStages": [
2026-06-10T07:08:01.1215766Z         "impl",
2026-06-10T07:08:01.1216042Z         "unit"
2026-06-10T07:08:01.1216308Z       ],
2026-06-10T07:08:01.1216593Z       "stages": {
2026-06-10T07:08:01.1216955Z         "doc": {
2026-06-10T07:08:01.1217260Z           "complete": false,
2026-06-10T07:08:01.1217556Z           "evidence": []
2026-06-10T07:08:01.1217824Z         },
2026-06-10T07:08:01.1218162Z         "impl": {
2026-06-10T07:08:01.1218453Z           "complete": true,
2026-06-10T07:08:01.1218744Z           "evidence": [
2026-06-10T07:08:01.1219090Z             {
2026-06-10T07:08:01.1219477Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.1219763Z               "line": 398
2026-06-10T07:08:01.1220039Z             },
2026-06-10T07:08:01.1220315Z             {
2026-06-10T07:08:01.1220702Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.1220993Z               "line": 409
2026-06-10T07:08:01.1221272Z             },
2026-06-10T07:08:01.1221542Z             {
2026-06-10T07:08:01.1222058Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.1222377Z               "line": 156
2026-06-10T07:08:01.1222696Z             }
2026-06-10T07:08:01.1222983Z           ]
2026-06-10T07:08:01.1223269Z         },
2026-06-10T07:08:01.1223551Z         "int": {
2026-06-10T07:08:01.1223856Z           "complete": false,
2026-06-10T07:08:01.1224158Z           "evidence": []
2026-06-10T07:08:01.1224428Z         },
2026-06-10T07:08:01.1224714Z         "unit": {
2026-06-10T07:08:01.1225010Z           "complete": true,
2026-06-10T07:08:01.1225306Z           "evidence": [
2026-06-10T07:08:01.1225587Z             {
2026-06-10T07:08:01.1225968Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.1226369Z               "line": 812
2026-06-10T07:08:01.1226668Z             },
2026-06-10T07:08:01.1226999Z             {
2026-06-10T07:08:01.1227386Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.1227686Z               "line": 826
2026-06-10T07:08:01.1227967Z             },
2026-06-10T07:08:01.1228244Z             {
2026-06-10T07:08:01.1228640Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.1228926Z               "line": 845
2026-06-10T07:08:01.1229304Z             },
2026-06-10T07:08:01.1229578Z             {
2026-06-10T07:08:01.1229960Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.1230250Z               "line": 862
2026-06-10T07:08:01.1230536Z             },
2026-06-10T07:08:01.1230823Z             {
2026-06-10T07:08:01.1231224Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T07:08:01.1231520Z               "line": 441
2026-06-10T07:08:01.1231804Z             }
2026-06-10T07:08:01.1232093Z           ]
2026-06-10T07:08:01.1232370Z         }
2026-06-10T07:08:01.1232651Z       }
2026-06-10T07:08:01.1232937Z     },
2026-06-10T07:08:01.1233209Z     {
2026-06-10T07:08:01.1233553Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-10T07:08:01.1235837Z       "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-10T07:08:01.1236147Z       "requiredStages": [
2026-06-10T07:08:01.1236429Z         "doc",
2026-06-10T07:08:01.1236711Z         "impl",
2026-06-10T07:08:01.1236992Z         "unit"
2026-06-10T07:08:01.1237271Z       ],
2026-06-10T07:08:01.1237555Z       "stages": {
2026-06-10T07:08:01.1237841Z         "doc": {
2026-06-10T07:08:01.1238137Z           "complete": true,
2026-06-10T07:08:01.1238437Z           "evidence": [
2026-06-10T07:08:01.1238714Z             {
2026-06-10T07:08:01.1239148Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-10T07:08:01.1239626Z               "line": 329
2026-06-10T07:08:01.1239908Z             }
2026-06-10T07:08:01.1240191Z           ]
2026-06-10T07:08:01.1240467Z         },
2026-06-10T07:08:01.1240753Z         "impl": {
2026-06-10T07:08:01.1241049Z           "complete": true,
2026-06-10T07:08:01.1241341Z           "evidence": [
2026-06-10T07:08:01.1241735Z             {
2026-06-10T07:08:01.1242123Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T07:08:01.1242416Z               "line": 85
2026-06-10T07:08:01.1242691Z             },
2026-06-10T07:08:01.1242972Z             {
2026-06-10T07:08:01.1243339Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T07:08:01.1243630Z               "line": 99
2026-06-10T07:08:01.1243902Z             },
2026-06-10T07:08:01.1244183Z             {
2026-06-10T07:08:01.1244574Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.1244860Z               "line": 55
2026-06-10T07:08:01.1245146Z             },
2026-06-10T07:08:01.1245426Z             {
2026-06-10T07:08:01.1245806Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.1246093Z               "line": 31
2026-06-10T07:08:01.1246378Z             },
2026-06-10T07:08:01.1246651Z             {
2026-06-10T07:08:01.1247027Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.1247323Z               "line": 187
2026-06-10T07:08:01.1247591Z             },
2026-06-10T07:08:01.1247874Z             {
2026-06-10T07:08:01.1248254Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.1248545Z               "line": 95
2026-06-10T07:08:01.1248821Z             },
2026-06-10T07:08:01.1249180Z             {
2026-06-10T07:08:01.1249574Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.1249861Z               "line": 29
2026-06-10T07:08:01.1250138Z             },
2026-06-10T07:08:01.1250419Z             {
2026-06-10T07:08:01.1250804Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.1251114Z               "line": 104
2026-06-10T07:08:01.1251395Z             },
2026-06-10T07:08:01.1251676Z             {
2026-06-10T07:08:01.1252073Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1252364Z               "line": 192
2026-06-10T07:08:01.1252654Z             },
2026-06-10T07:08:01.1252939Z             {
2026-06-10T07:08:01.1253318Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T07:08:01.1253599Z               "line": 28
2026-06-10T07:08:01.1253880Z             },
2026-06-10T07:08:01.1254157Z             {
2026-06-10T07:08:01.1254543Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T07:08:01.1254838Z               "line": 74
2026-06-10T07:08:01.1255172Z             },
2026-06-10T07:08:01.1255454Z             {
2026-06-10T07:08:01.1255843Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T07:08:01.1256127Z               "line": 32
2026-06-10T07:08:01.1256399Z             },
2026-06-10T07:08:01.1256686Z             {
2026-06-10T07:08:01.1257071Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1257358Z               "line": 40
2026-06-10T07:08:01.1257639Z             },
2026-06-10T07:08:01.1257916Z             {
2026-06-10T07:08:01.1258282Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1258576Z               "line": 184
2026-06-10T07:08:01.1258862Z             },
2026-06-10T07:08:01.1259210Z             {
2026-06-10T07:08:01.1259567Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-10T07:08:01.1259858Z               "line": 70
2026-06-10T07:08:01.1260134Z             },
2026-06-10T07:08:01.1260412Z             {
2026-06-10T07:08:01.1260778Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T07:08:01.1261075Z               "line": 223
2026-06-10T07:08:01.1261364Z             },
2026-06-10T07:08:01.1261645Z             {
2026-06-10T07:08:01.1262008Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T07:08:01.1262408Z               "line": 37
2026-06-10T07:08:01.1262680Z             },
2026-06-10T07:08:01.1262953Z             {
2026-06-10T07:08:01.1263338Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.1263632Z               "line": 38
2026-06-10T07:08:01.1263912Z             },
2026-06-10T07:08:01.1264289Z             {
2026-06-10T07:08:01.1264665Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T07:08:01.1264961Z               "line": 36
2026-06-10T07:08:01.1265252Z             },
2026-06-10T07:08:01.1265524Z             {
2026-06-10T07:08:01.1265891Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T07:08:01.1266177Z               "line": 40
2026-06-10T07:08:01.1266461Z             }
2026-06-10T07:08:01.1266740Z           ]
2026-06-10T07:08:01.1267016Z         },
2026-06-10T07:08:01.1267297Z         "int": {
2026-06-10T07:08:01.1267603Z           "complete": false,
2026-06-10T07:08:01.1267909Z           "evidence": []
2026-06-10T07:08:01.1268185Z         },
2026-06-10T07:08:01.1268467Z         "unit": {
2026-06-10T07:08:01.1268763Z           "complete": true,
2026-06-10T07:08:01.1269136Z           "evidence": [
2026-06-10T07:08:01.1269412Z             {
2026-06-10T07:08:01.1269803Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.1270114Z               "line": 212
2026-06-10T07:08:01.1270385Z             },
2026-06-10T07:08:01.1270662Z             {
2026-06-10T07:08:01.1271057Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-10T07:08:01.1271348Z               "line": 136
2026-06-10T07:08:01.1271621Z             },
2026-06-10T07:08:01.1271900Z             {
2026-06-10T07:08:01.1272301Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T07:08:01.1272578Z               "line": 685
2026-06-10T07:08:01.1272864Z             },
2026-06-10T07:08:01.1273140Z             {
2026-06-10T07:08:01.1273513Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T07:08:01.1273818Z               "line": 224
2026-06-10T07:08:01.1274082Z             },
2026-06-10T07:08:01.1274357Z             {
2026-06-10T07:08:01.1274738Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-10T07:08:01.1275029Z               "line": 157
2026-06-10T07:08:01.1275306Z             },
2026-06-10T07:08:01.1275592Z             {
2026-06-10T07:08:01.1275978Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T07:08:01.1276269Z               "line": 112
2026-06-10T07:08:01.1276550Z             },
2026-06-10T07:08:01.1276831Z             {
2026-06-10T07:08:01.1277196Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T07:08:01.1277482Z               "line": 157
2026-06-10T07:08:01.1277768Z             },
2026-06-10T07:08:01.1278050Z             {
2026-06-10T07:08:01.1278421Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.1278717Z               "line": 215
2026-06-10T07:08:01.1279069Z             },
2026-06-10T07:08:01.1279356Z             {
2026-06-10T07:08:01.1279729Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T07:08:01.1280025Z               "line": 140
2026-06-10T07:08:01.1280315Z             },
2026-06-10T07:08:01.1280593Z             {
2026-06-10T07:08:01.1280963Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T07:08:01.1281264Z               "line": 162
2026-06-10T07:08:01.1281547Z             }
2026-06-10T07:08:01.1281823Z           ]
2026-06-10T07:08:01.1282110Z         }
2026-06-10T07:08:01.1282388Z       }
2026-06-10T07:08:01.1282655Z     },
2026-06-10T07:08:01.1282932Z     {
2026-06-10T07:08:01.1283284Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-10T07:08:01.1283786Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-10T07:08:01.1284092Z       "requiredStages": [
2026-06-10T07:08:01.1284378Z         "impl",
2026-06-10T07:08:01.1284671Z         "unit"
2026-06-10T07:08:01.1284940Z       ],
2026-06-10T07:08:01.1285351Z       "stages": {
2026-06-10T07:08:01.1285632Z         "doc": {
2026-06-10T07:08:01.1285933Z           "complete": false,
2026-06-10T07:08:01.1286218Z           "evidence": []
2026-06-10T07:08:01.1286495Z         },
2026-06-10T07:08:01.1286776Z         "impl": {
2026-06-10T07:08:01.1287072Z           "complete": true,
2026-06-10T07:08:01.1287462Z           "evidence": [
2026-06-10T07:08:01.1287737Z             {
2026-06-10T07:08:01.1288103Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.1288390Z               "line": 95
2026-06-10T07:08:01.1288719Z             },
2026-06-10T07:08:01.1289081Z             {
2026-06-10T07:08:01.1289444Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.1289744Z               "line": 102
2026-06-10T07:08:01.1290019Z             }
2026-06-10T07:08:01.1290294Z           ]
2026-06-10T07:08:01.1290572Z         },
2026-06-10T07:08:01.1290852Z         "int": {
2026-06-10T07:08:01.1291157Z           "complete": false,
2026-06-10T07:08:01.1291458Z           "evidence": []
2026-06-10T07:08:01.1291735Z         },
2026-06-10T07:08:01.1292015Z         "unit": {
2026-06-10T07:08:01.1292316Z           "complete": true,
2026-06-10T07:08:01.1292606Z           "evidence": [
2026-06-10T07:08:01.1292882Z             {
2026-06-10T07:08:01.1293254Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.1293549Z               "line": 250
2026-06-10T07:08:01.1293830Z             },
2026-06-10T07:08:01.1294107Z             {
2026-06-10T07:08:01.1294484Z               "path": "crates/spt-store/src/proc.rs",
2026-06-10T07:08:01.1294770Z               "line": 198
2026-06-10T07:08:01.1295055Z             },
2026-06-10T07:08:01.1295331Z             {
2026-06-10T07:08:01.1295693Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.1295983Z               "line": 442
2026-06-10T07:08:01.1296260Z             },
2026-06-10T07:08:01.1296537Z             {
2026-06-10T07:08:01.1296899Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.1297200Z               "line": 475
2026-06-10T07:08:01.1297486Z             }
2026-06-10T07:08:01.1297762Z           ]
2026-06-10T07:08:01.1298036Z         }
2026-06-10T07:08:01.1298316Z       }
2026-06-10T07:08:01.1298593Z     },
2026-06-10T07:08:01.1298865Z     {
2026-06-10T07:08:01.1299293Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-10T07:08:01.1299856Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-10T07:08:01.1300161Z       "requiredStages": [
2026-06-10T07:08:01.1300443Z         "impl",
2026-06-10T07:08:01.1300756Z         "unit"
2026-06-10T07:08:01.1301044Z       ],
2026-06-10T07:08:01.1301321Z       "stages": {
2026-06-10T07:08:01.1301626Z         "doc": {
2026-06-10T07:08:01.1301927Z           "complete": false,
2026-06-10T07:08:01.1302222Z           "evidence": []
2026-06-10T07:08:01.1302508Z         },
2026-06-10T07:08:01.1302785Z         "impl": {
2026-06-10T07:08:01.1303085Z           "complete": true,
2026-06-10T07:08:01.1303376Z           "evidence": [
2026-06-10T07:08:01.1303662Z             {
2026-06-10T07:08:01.1304043Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1304329Z               "line": 252
2026-06-10T07:08:01.1304606Z             },
2026-06-10T07:08:01.1304883Z             {
2026-06-10T07:08:01.1305282Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1305574Z               "line": 297
2026-06-10T07:08:01.1305854Z             },
2026-06-10T07:08:01.1306142Z             {
2026-06-10T07:08:01.1306505Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1306801Z               "line": 309
2026-06-10T07:08:01.1307077Z             }
2026-06-10T07:08:01.1307372Z           ]
2026-06-10T07:08:01.1307649Z         },
2026-06-10T07:08:01.1307926Z         "int": {
2026-06-10T07:08:01.1308245Z           "complete": false,
2026-06-10T07:08:01.1308904Z           "evidence": []
2026-06-10T07:08:01.1309266Z         },
2026-06-10T07:08:01.1309811Z         "unit": {
2026-06-10T07:08:01.1310120Z           "complete": true,
2026-06-10T07:08:01.1310416Z           "evidence": [
2026-06-10T07:08:01.1310698Z             {
2026-06-10T07:08:01.1311074Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1311363Z               "line": 445
2026-06-10T07:08:01.1311644Z             },
2026-06-10T07:08:01.1311996Z             {
2026-06-10T07:08:01.1312363Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.1312640Z               "line": 489
2026-06-10T07:08:01.1312903Z             }
2026-06-10T07:08:01.1313212Z           ]
2026-06-10T07:08:01.1313485Z         }
2026-06-10T07:08:01.1313761Z       }
2026-06-10T07:08:01.1314026Z     },
2026-06-10T07:08:01.1314298Z     {
2026-06-10T07:08:01.1314585Z       "id": "REQ-INFRA-1",
2026-06-10T07:08:01.1315147Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-10T07:08:01.1315443Z       "requiredStages": [],
2026-06-10T07:08:01.1315729Z       "stages": {
2026-06-10T07:08:01.1316009Z         "doc": {
2026-06-10T07:08:01.1316305Z           "complete": false,
2026-06-10T07:08:01.1316595Z           "evidence": []
2026-06-10T07:08:01.1316869Z         },
2026-06-10T07:08:01.1317137Z         "impl": {
2026-06-10T07:08:01.1317657Z           "complete": false,
2026-06-10T07:08:01.1317947Z           "evidence": []
2026-06-10T07:08:01.1318223Z         },
2026-06-10T07:08:01.1318495Z         "int": {
2026-06-10T07:08:01.1318786Z           "complete": false,
2026-06-10T07:08:01.1319148Z           "evidence": []
2026-06-10T07:08:01.1319412Z         },
2026-06-10T07:08:01.1319731Z         "unit": {
2026-06-10T07:08:01.1320023Z           "complete": false,
2026-06-10T07:08:01.1320328Z           "evidence": []
2026-06-10T07:08:01.1320609Z         }
2026-06-10T07:08:01.1320891Z       }
2026-06-10T07:08:01.1321163Z     },
2026-06-10T07:08:01.1321444Z     {
2026-06-10T07:08:01.1321747Z       "id": "REQ-INST-1",
2026-06-10T07:08:01.1322237Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-10T07:08:01.1322561Z       "requiredStages": [],
2026-06-10T07:08:01.1322837Z       "stages": {
2026-06-10T07:08:01.1323124Z         "doc": {
2026-06-10T07:08:01.1323415Z           "complete": false,
2026-06-10T07:08:01.1323715Z           "evidence": []
2026-06-10T07:08:01.1323986Z         },
2026-06-10T07:08:01.1324273Z         "impl": {
2026-06-10T07:08:01.1324571Z           "complete": false,
2026-06-10T07:08:01.1324863Z           "evidence": []
2026-06-10T07:08:01.1325140Z         },
2026-06-10T07:08:01.1325421Z         "int": {
2026-06-10T07:08:01.1325721Z           "complete": false,
2026-06-10T07:08:01.1326018Z           "evidence": []
2026-06-10T07:08:01.1326299Z         },
2026-06-10T07:08:01.1326584Z         "unit": {
2026-06-10T07:08:01.1326878Z           "complete": false,
2026-06-10T07:08:01.1327176Z           "evidence": []
2026-06-10T07:08:01.1327457Z         }
2026-06-10T07:08:01.1327739Z       }
2026-06-10T07:08:01.1328016Z     },
2026-06-10T07:08:01.1328293Z     {
2026-06-10T07:08:01.1328589Z       "id": "REQ-INST-10",
2026-06-10T07:08:01.1329351Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-10T07:08:01.1329660Z       "requiredStages": [
2026-06-10T07:08:01.1329935Z         "impl",
2026-06-10T07:08:01.1330211Z         "unit"
2026-06-10T07:08:01.1330488Z       ],
2026-06-10T07:08:01.1330759Z       "stages": {
2026-06-10T07:08:01.1331040Z         "doc": {
2026-06-10T07:08:01.1331331Z           "complete": false,
2026-06-10T07:08:01.1331627Z           "evidence": []
2026-06-10T07:08:01.1331903Z         },
2026-06-10T07:08:01.1332184Z         "impl": {
2026-06-10T07:08:01.1332483Z           "complete": true,
2026-06-10T07:08:01.1332769Z           "evidence": [
2026-06-10T07:08:01.1333054Z             {
2026-06-10T07:08:01.1333445Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1333731Z               "line": 600
2026-06-10T07:08:01.1333999Z             },
2026-06-10T07:08:01.1334455Z             {
2026-06-10T07:08:01.1335261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1336157Z               "line": 677
2026-06-10T07:08:01.1336850Z             },
2026-06-10T07:08:01.1337467Z             {
2026-06-10T07:08:01.1338147Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T07:08:01.1339239Z               "line": 13
2026-06-10T07:08:01.1339921Z             },
2026-06-10T07:08:01.1340528Z             {
2026-06-10T07:08:01.1341214Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T07:08:01.1342077Z               "line": 67
2026-06-10T07:08:01.1342744Z             },
2026-06-10T07:08:01.1343348Z             {
2026-06-10T07:08:01.1344020Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.1344850Z               "line": 18
2026-06-10T07:08:01.1345513Z             },
2026-06-10T07:08:01.1346121Z             {
2026-06-10T07:08:01.1346790Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.1347681Z               "line": 444
2026-06-10T07:08:01.1348373Z             }
2026-06-10T07:08:01.1349051Z           ]
2026-06-10T07:08:01.1349661Z         },
2026-06-10T07:08:01.1350252Z         "int": {
2026-06-10T07:08:01.1350889Z           "complete": false,
2026-06-10T07:08:01.1351613Z           "evidence": []
2026-06-10T07:08:01.1352290Z         },
2026-06-10T07:08:01.1352872Z         "unit": {
2026-06-10T07:08:01.1353528Z           "complete": true,
2026-06-10T07:08:01.1354236Z           "evidence": [
2026-06-10T07:08:01.1354894Z             {
2026-06-10T07:08:01.1355638Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1356524Z               "line": 883
2026-06-10T07:08:01.1357201Z             },
2026-06-10T07:08:01.1357816Z             {
2026-06-10T07:08:01.1358511Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1359462Z               "line": 1212
2026-06-10T07:08:01.1360149Z             },
2026-06-10T07:08:01.1360768Z             {
2026-06-10T07:08:01.1361493Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1362372Z               "line": 1223
2026-06-10T07:08:01.1363054Z             },
2026-06-10T07:08:01.1363665Z             {
2026-06-10T07:08:01.1364376Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1365277Z               "line": 1239
2026-06-10T07:08:01.1365951Z             },
2026-06-10T07:08:01.1366556Z             {
2026-06-10T07:08:01.1367261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1368151Z               "line": 1255
2026-06-10T07:08:01.1368825Z             },
2026-06-10T07:08:01.1369522Z             {
2026-06-10T07:08:01.1370233Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1371111Z               "line": 1277
2026-06-10T07:08:01.1371793Z             },
2026-06-10T07:08:01.1372399Z             {
2026-06-10T07:08:01.1373095Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1373978Z               "line": 1582
2026-06-10T07:08:01.1374662Z             },
2026-06-10T07:08:01.1375271Z             {
2026-06-10T07:08:01.1375949Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T07:08:01.1376801Z               "line": 130
2026-06-10T07:08:01.1377487Z             },
2026-06-10T07:08:01.1378102Z             {
2026-06-10T07:08:01.1378785Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T07:08:01.1379717Z               "line": 167
2026-06-10T07:08:01.1380392Z             },
2026-06-10T07:08:01.1380998Z             {
2026-06-10T07:08:01.1381676Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T07:08:01.1382522Z               "line": 175
2026-06-10T07:08:01.1383197Z             },
2026-06-10T07:08:01.1383807Z             {
2026-06-10T07:08:01.1384490Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-10T07:08:01.1385321Z               "line": 183
2026-06-10T07:08:01.1389878Z             },
2026-06-10T07:08:01.1390710Z             {
2026-06-10T07:08:01.1391414Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.1392269Z               "line": 895
2026-06-10T07:08:01.1392941Z             }
2026-06-10T07:08:01.1393548Z           ]
2026-06-10T07:08:01.1394149Z         }
2026-06-10T07:08:01.1394740Z       }
2026-06-10T07:08:01.1395312Z     },
2026-06-10T07:08:01.1396018Z     {
2026-06-10T07:08:01.1396629Z       "id": "REQ-INST-11",
2026-06-10T07:08:01.1397736Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-10T07:08:01.1398927Z       "requiredStages": [
2026-06-10T07:08:01.1399747Z         "impl",
2026-06-10T07:08:01.1400366Z         "unit"
2026-06-10T07:08:01.1400974Z       ],
2026-06-10T07:08:01.1401556Z       "stages": {
2026-06-10T07:08:01.1402176Z         "doc": {
2026-06-10T07:08:01.1402820Z           "complete": false,
2026-06-10T07:08:01.1403538Z           "evidence": []
2026-06-10T07:08:01.1404208Z         },
2026-06-10T07:08:01.1404819Z         "impl": {
2026-06-10T07:08:01.1405452Z           "complete": true,
2026-06-10T07:08:01.1406157Z           "evidence": [
2026-06-10T07:08:01.1406808Z             {
2026-06-10T07:08:01.1407508Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1408396Z               "line": 466
2026-06-10T07:08:01.1409138Z             },
2026-06-10T07:08:01.1409758Z             {
2026-06-10T07:08:01.1410475Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1411378Z               "line": 265
2026-06-10T07:08:01.1412063Z             },
2026-06-10T07:08:01.1412688Z             {
2026-06-10T07:08:01.1413380Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T07:08:01.1414235Z               "line": 59
2026-06-10T07:08:01.1414906Z             },
2026-06-10T07:08:01.1415526Z             {
2026-06-10T07:08:01.1416233Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1417067Z               "line": 4043
2026-06-10T07:08:01.1417749Z             },
2026-06-10T07:08:01.1418350Z             {
2026-06-10T07:08:01.1419114Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1419913Z               "line": 5142
2026-06-10T07:08:01.1420590Z             }
2026-06-10T07:08:01.1421182Z           ]
2026-06-10T07:08:01.1421773Z         },
2026-06-10T07:08:01.1422352Z         "int": {
2026-06-10T07:08:01.1423000Z           "complete": false,
2026-06-10T07:08:01.1423996Z           "evidence": []
2026-06-10T07:08:01.1424696Z         },
2026-06-10T07:08:01.1425286Z         "unit": {
2026-06-10T07:08:01.1425924Z           "complete": true,
2026-06-10T07:08:01.1426629Z           "evidence": [
2026-06-10T07:08:01.1427320Z             {
2026-06-10T07:08:01.1428028Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1428910Z               "line": 1382
2026-06-10T07:08:01.1429768Z             },
2026-06-10T07:08:01.1430369Z             {
2026-06-10T07:08:01.1431084Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1431962Z               "line": 1415
2026-06-10T07:08:01.1432636Z             },
2026-06-10T07:08:01.1433237Z             {
2026-06-10T07:08:01.1433946Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1434839Z               "line": 495
2026-06-10T07:08:01.1435490Z             },
2026-06-10T07:08:01.1436089Z             {
2026-06-10T07:08:01.1436766Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T07:08:01.1437605Z               "line": 160
2026-06-10T07:08:01.1438278Z             },
2026-06-10T07:08:01.1438869Z             {
2026-06-10T07:08:01.1439652Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T07:08:01.1440506Z               "line": 190
2026-06-10T07:08:01.1441172Z             },
2026-06-10T07:08:01.1441763Z             {
2026-06-10T07:08:01.1442456Z               "path": "crates/spt-store/src/rename.rs",
2026-06-10T07:08:01.1443299Z               "line": 225
2026-06-10T07:08:01.1443976Z             },
2026-06-10T07:08:01.1444716Z             {
2026-06-10T07:08:01.1445599Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1446421Z               "line": 5382
2026-06-10T07:08:01.1447092Z             }
2026-06-10T07:08:01.1447697Z           ]
2026-06-10T07:08:01.1448285Z         }
2026-06-10T07:08:01.1448872Z       }
2026-06-10T07:08:01.1449531Z     },
2026-06-10T07:08:01.1450226Z     {
2026-06-10T07:08:01.1450833Z       "id": "REQ-INST-12",
2026-06-10T07:08:01.1452171Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-10T07:08:01.1453576Z       "requiredStages": [
2026-06-10T07:08:01.1454260Z         "impl",
2026-06-10T07:08:01.1454870Z         "unit"
2026-06-10T07:08:01.1455467Z       ],
2026-06-10T07:08:01.1456057Z       "stages": {
2026-06-10T07:08:01.1456680Z         "doc": {
2026-06-10T07:08:01.1457319Z           "complete": false,
2026-06-10T07:08:01.1458033Z           "evidence": []
2026-06-10T07:08:01.1458706Z         },
2026-06-10T07:08:01.1459394Z         "impl": {
2026-06-10T07:08:01.1460086Z           "complete": true,
2026-06-10T07:08:01.1460844Z           "evidence": [
2026-06-10T07:08:01.1461559Z             {
2026-06-10T07:08:01.1462302Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1463241Z               "line": 518
2026-06-10T07:08:01.1463975Z             },
2026-06-10T07:08:01.1464582Z             {
2026-06-10T07:08:01.1465513Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1466467Z               "line": 611
2026-06-10T07:08:01.1467188Z             },
2026-06-10T07:08:01.1467822Z             {
2026-06-10T07:08:01.1468517Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1469466Z               "line": 691
2026-06-10T07:08:01.1470154Z             },
2026-06-10T07:08:01.1470760Z             {
2026-06-10T07:08:01.1471446Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.1472324Z               "line": 96
2026-06-10T07:08:01.1473000Z             },
2026-06-10T07:08:01.1473601Z             {
2026-06-10T07:08:01.1474287Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.1475152Z               "line": 269
2026-06-10T07:08:01.1475806Z             },
2026-06-10T07:08:01.1476411Z             {
2026-06-10T07:08:01.1477135Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T07:08:01.1478019Z               "line": 135
2026-06-10T07:08:01.1478716Z             }
2026-06-10T07:08:01.1479397Z           ]
2026-06-10T07:08:01.1479989Z         },
2026-06-10T07:08:01.1480566Z         "int": {
2026-06-10T07:08:01.1481201Z           "complete": false,
2026-06-10T07:08:01.1481912Z           "evidence": []
2026-06-10T07:08:01.1482579Z         },
2026-06-10T07:08:01.1483174Z         "unit": {
2026-06-10T07:08:01.1483813Z           "complete": true,
2026-06-10T07:08:01.1484513Z           "evidence": [
2026-06-10T07:08:01.1485284Z             {
2026-06-10T07:08:01.1486037Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1486923Z               "line": 1457
2026-06-10T07:08:01.1487592Z             },
2026-06-10T07:08:01.1488195Z             {
2026-06-10T07:08:01.1488899Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1489853Z               "line": 1480
2026-06-10T07:08:01.1490540Z             },
2026-06-10T07:08:01.1491136Z             {
2026-06-10T07:08:01.1491837Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1492701Z               "line": 1517
2026-06-10T07:08:01.1493369Z             },
2026-06-10T07:08:01.1493968Z             {
2026-06-10T07:08:01.1494650Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.1495508Z               "line": 457
2026-06-10T07:08:01.1496181Z             },
2026-06-10T07:08:01.1496777Z             {
2026-06-10T07:08:01.1497474Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T07:08:01.1498491Z               "line": 172
2026-06-10T07:08:01.1499253Z             },
2026-06-10T07:08:01.1499860Z             {
2026-06-10T07:08:01.1500560Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T07:08:01.1501435Z               "line": 193
2026-06-10T07:08:01.1502107Z             },
2026-06-10T07:08:01.1502708Z             {
2026-06-10T07:08:01.1503513Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T07:08:01.1504389Z               "line": 219
2026-06-10T07:08:01.1505119Z             }
2026-06-10T07:08:01.1505705Z           ]
2026-06-10T07:08:01.1506281Z         }
2026-06-10T07:08:01.1506876Z       }
2026-06-10T07:08:01.1507434Z     },
2026-06-10T07:08:01.1508019Z     {
2026-06-10T07:08:01.1508610Z       "id": "REQ-INST-13",
2026-06-10T07:08:01.1509671Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-10T07:08:01.1510739Z       "requiredStages": [
2026-06-10T07:08:01.1511430Z         "impl",
2026-06-10T07:08:01.1512033Z         "unit"
2026-06-10T07:08:01.1512657Z       ],
2026-06-10T07:08:01.1513239Z       "stages": {
2026-06-10T07:08:01.1513864Z         "doc": {
2026-06-10T07:08:01.1514498Z           "complete": false,
2026-06-10T07:08:01.1515212Z           "evidence": []
2026-06-10T07:08:01.1515889Z         },
2026-06-10T07:08:01.1516485Z         "impl": {
2026-06-10T07:08:01.1517145Z           "complete": true,
2026-06-10T07:08:01.1517849Z           "evidence": [
2026-06-10T07:08:01.1518493Z             {
2026-06-10T07:08:01.1519257Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1520116Z               "line": 100
2026-06-10T07:08:01.1520788Z             },
2026-06-10T07:08:01.1521399Z             {
2026-06-10T07:08:01.1522110Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T07:08:01.1522997Z               "line": 158
2026-06-10T07:08:01.1523669Z             }
2026-06-10T07:08:01.1524271Z           ]
2026-06-10T07:08:01.1524852Z         },
2026-06-10T07:08:01.1525444Z         "int": {
2026-06-10T07:08:01.1526096Z           "complete": false,
2026-06-10T07:08:01.1526811Z           "evidence": []
2026-06-10T07:08:01.1527478Z         },
2026-06-10T07:08:01.1528071Z         "unit": {
2026-06-10T07:08:01.1528720Z           "complete": true,
2026-06-10T07:08:01.1529508Z           "evidence": [
2026-06-10T07:08:01.1530166Z             {
2026-06-10T07:08:01.1530887Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T07:08:01.1531769Z               "line": 248
2026-06-10T07:08:01.1532437Z             },
2026-06-10T07:08:01.1533036Z             {
2026-06-10T07:08:01.1533749Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-10T07:08:01.1534637Z               "line": 266
2026-06-10T07:08:01.1535360Z             }
2026-06-10T07:08:01.1535956Z           ]
2026-06-10T07:08:01.1536528Z         }
2026-06-10T07:08:01.1537109Z       }
2026-06-10T07:08:01.1537686Z     },
2026-06-10T07:08:01.1538265Z     {
2026-06-10T07:08:01.1538861Z       "id": "REQ-INST-14",
2026-06-10T07:08:01.1540510Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-10T07:08:01.1542233Z       "requiredStages": [
2026-06-10T07:08:01.1542930Z         "doc",
2026-06-10T07:08:01.1543538Z         "impl",
2026-06-10T07:08:01.1544146Z         "unit"
2026-06-10T07:08:01.1544742Z       ],
2026-06-10T07:08:01.1545325Z       "stages": {
2026-06-10T07:08:01.1545929Z         "doc": {
2026-06-10T07:08:01.1546606Z           "complete": true,
2026-06-10T07:08:01.1547311Z           "evidence": [
2026-06-10T07:08:01.1547965Z             {
2026-06-10T07:08:01.1548603Z               "path": "CONTEXT.md",
2026-06-10T07:08:01.1549445Z               "line": 425
2026-06-10T07:08:01.1550107Z             },
2026-06-10T07:08:01.1550704Z             {
2026-06-10T07:08:01.1551338Z               "path": "docs/STORAGE.md",
2026-06-10T07:08:01.1552120Z               "line": 49
2026-06-10T07:08:01.1552769Z             }
2026-06-10T07:08:01.1553490Z           ]
2026-06-10T07:08:01.1554083Z         },
2026-06-10T07:08:01.1554673Z         "impl": {
2026-06-10T07:08:01.1555321Z           "complete": true,
2026-06-10T07:08:01.1556018Z           "evidence": [
2026-06-10T07:08:01.1556672Z             {
2026-06-10T07:08:01.1557395Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1558392Z               "line": 388
2026-06-10T07:08:01.1559201Z             },
2026-06-10T07:08:01.1559794Z             {
2026-06-10T07:08:01.1560510Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1561392Z               "line": 330
2026-06-10T07:08:01.1562068Z             },
2026-06-10T07:08:01.1562661Z             {
2026-06-10T07:08:01.1563343Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.1564215Z               "line": 211
2026-06-10T07:08:01.1564885Z             },
2026-06-10T07:08:01.1565491Z             {
2026-06-10T07:08:01.1566144Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1566970Z               "line": 1038
2026-06-10T07:08:01.1567641Z             }
2026-06-10T07:08:01.1568261Z           ]
2026-06-10T07:08:01.1568852Z         },
2026-06-10T07:08:01.1569516Z         "int": {
2026-06-10T07:08:01.1570150Z           "complete": false,
2026-06-10T07:08:01.1570865Z           "evidence": []
2026-06-10T07:08:01.1571547Z         },
2026-06-10T07:08:01.1572148Z         "unit": {
2026-06-10T07:08:01.1572780Z           "complete": true,
2026-06-10T07:08:01.1573489Z           "evidence": [
2026-06-10T07:08:01.1574157Z             {
2026-06-10T07:08:01.1574891Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1575783Z               "line": 1081
2026-06-10T07:08:01.1576460Z             },
2026-06-10T07:08:01.1577071Z             {
2026-06-10T07:08:01.1577773Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1578648Z               "line": 895
2026-06-10T07:08:01.1579398Z             },
2026-06-10T07:08:01.1580022Z             {
2026-06-10T07:08:01.1580720Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1581601Z               "line": 1153
2026-06-10T07:08:01.1582279Z             },
2026-06-10T07:08:01.1582890Z             {
2026-06-10T07:08:01.1583572Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.1584435Z               "line": 463
2026-06-10T07:08:01.1585103Z             },
2026-06-10T07:08:01.1585707Z             {
2026-06-10T07:08:01.1586372Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1587189Z               "line": 5458
2026-06-10T07:08:01.1587879Z             }
2026-06-10T07:08:01.1588485Z           ]
2026-06-10T07:08:01.1589153Z         }
2026-06-10T07:08:01.1589734Z       }
2026-06-10T07:08:01.1590306Z     },
2026-06-10T07:08:01.1590881Z     {
2026-06-10T07:08:01.1591480Z       "id": "REQ-INST-15",
2026-06-10T07:08:01.1594089Z       "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-10T07:08:01.1596829Z       "requiredStages": [
2026-06-10T07:08:01.1597533Z         "doc",
2026-06-10T07:08:01.1598144Z         "impl",
2026-06-10T07:08:01.1598759Z         "unit"
2026-06-10T07:08:01.1599444Z       ],
2026-06-10T07:08:01.1600032Z       "stages": {
2026-06-10T07:08:01.1600651Z         "doc": {
2026-06-10T07:08:01.1601290Z           "complete": true,
2026-06-10T07:08:01.1601992Z           "evidence": [
2026-06-10T07:08:01.1602654Z             {
2026-06-10T07:08:01.1603509Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-10T07:08:01.1604611Z               "line": 3
2026-06-10T07:08:01.1605259Z             }
2026-06-10T07:08:01.1605861Z           ]
2026-06-10T07:08:01.1606452Z         },
2026-06-10T07:08:01.1607036Z         "impl": {
2026-06-10T07:08:01.1607784Z           "complete": true,
2026-06-10T07:08:01.1608489Z           "evidence": [
2026-06-10T07:08:01.1609234Z             {
2026-06-10T07:08:01.1609958Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1610859Z               "line": 337
2026-06-10T07:08:01.1611531Z             },
2026-06-10T07:08:01.1612135Z             {
2026-06-10T07:08:01.1612929Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.1613777Z               "line": 60
2026-06-10T07:08:01.1614445Z             },
2026-06-10T07:08:01.1615090Z             {
2026-06-10T07:08:01.1615815Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1616707Z               "line": 336
2026-06-10T07:08:01.1617374Z             },
2026-06-10T07:08:01.1617977Z             {
2026-06-10T07:08:01.1618692Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1619660Z               "line": 385
2026-06-10T07:08:01.1620331Z             },
2026-06-10T07:08:01.1620950Z             {
2026-06-10T07:08:01.1621633Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1626408Z               "line": 19
2026-06-10T07:08:01.1627106Z             },
2026-06-10T07:08:01.1627730Z             {
2026-06-10T07:08:01.1628418Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1629386Z               "line": 70
2026-06-10T07:08:01.1630063Z             },
2026-06-10T07:08:01.1630679Z             {
2026-06-10T07:08:01.1631364Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1632213Z               "line": 96
2026-06-10T07:08:01.1632881Z             },
2026-06-10T07:08:01.1633467Z             {
2026-06-10T07:08:01.1634145Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1634988Z               "line": 121
2026-06-10T07:08:01.1635656Z             },
2026-06-10T07:08:01.1636263Z             {
2026-06-10T07:08:01.1636949Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1637803Z               "line": 172
2026-06-10T07:08:01.1638470Z             },
2026-06-10T07:08:01.1639159Z             {
2026-06-10T07:08:01.1639855Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.1640704Z               "line": 143
2026-06-10T07:08:01.1641380Z             },
2026-06-10T07:08:01.1641976Z             {
2026-06-10T07:08:01.1642629Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1643455Z               "line": 930
2026-06-10T07:08:01.1644124Z             }
2026-06-10T07:08:01.1644720Z           ]
2026-06-10T07:08:01.1645301Z         },
2026-06-10T07:08:01.1645882Z         "int": {
2026-06-10T07:08:01.1646511Z           "complete": false,
2026-06-10T07:08:01.1647214Z           "evidence": []
2026-06-10T07:08:01.1647882Z         },
2026-06-10T07:08:01.1648464Z         "unit": {
2026-06-10T07:08:01.1649187Z           "complete": true,
2026-06-10T07:08:01.1649882Z           "evidence": [
2026-06-10T07:08:01.1650539Z             {
2026-06-10T07:08:01.1651259Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1652160Z               "line": 545
2026-06-10T07:08:01.1652837Z             },
2026-06-10T07:08:01.1653447Z             {
2026-06-10T07:08:01.1654171Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.1655074Z               "line": 606
2026-06-10T07:08:01.1656151Z             },
2026-06-10T07:08:01.1656781Z             {
2026-06-10T07:08:01.1657498Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1658351Z               "line": 213
2026-06-10T07:08:01.1659110Z             },
2026-06-10T07:08:01.1659709Z             {
2026-06-10T07:08:01.1660384Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1661227Z               "line": 249
2026-06-10T07:08:01.1661896Z             },
2026-06-10T07:08:01.1662491Z             {
2026-06-10T07:08:01.1663158Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1663993Z               "line": 262
2026-06-10T07:08:01.1664826Z             },
2026-06-10T07:08:01.1665424Z             {
2026-06-10T07:08:01.1666102Z               "path": "crates/spt-store/src/home.rs",
2026-06-10T07:08:01.1666945Z               "line": 338
2026-06-10T07:08:01.1667617Z             },
2026-06-10T07:08:01.1668215Z             {
2026-06-10T07:08:01.1669089Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.1669952Z               "line": 496
2026-06-10T07:08:01.1670625Z             },
2026-06-10T07:08:01.1671225Z             {
2026-06-10T07:08:01.1671879Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1672684Z               "line": 5395
2026-06-10T07:08:01.1673360Z             },
2026-06-10T07:08:01.1673967Z             {
2026-06-10T07:08:01.1674615Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1675429Z               "line": 6788
2026-06-10T07:08:01.1676100Z             }
2026-06-10T07:08:01.1676706Z           ]
2026-06-10T07:08:01.1677291Z         }
2026-06-10T07:08:01.1677887Z       }
2026-06-10T07:08:01.1678461Z     },
2026-06-10T07:08:01.1679114Z     {
2026-06-10T07:08:01.1679705Z       "id": "REQ-INST-2",
2026-06-10T07:08:01.1680468Z       "title": "Per-node files, synced Psyche mind",
2026-06-10T07:08:01.1681357Z       "requiredStages": [
2026-06-10T07:08:01.1682057Z         "impl",
2026-06-10T07:08:01.1682677Z         "unit"
2026-06-10T07:08:01.1683293Z       ],
2026-06-10T07:08:01.1683883Z       "stages": {
2026-06-10T07:08:01.1684513Z         "doc": {
2026-06-10T07:08:01.1685155Z           "complete": false,
2026-06-10T07:08:01.1685880Z           "evidence": []
2026-06-10T07:08:01.1686568Z         },
2026-06-10T07:08:01.1687159Z         "impl": {
2026-06-10T07:08:01.1687794Z           "complete": true,
2026-06-10T07:08:01.1688501Z           "evidence": [
2026-06-10T07:08:01.1689241Z             {
2026-06-10T07:08:01.1689951Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1690848Z               "line": 86
2026-06-10T07:08:01.1691513Z             },
2026-06-10T07:08:01.1692103Z             {
2026-06-10T07:08:01.1692780Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.1693629Z               "line": 28
2026-06-10T07:08:01.1694295Z             },
2026-06-10T07:08:01.1694910Z             {
2026-06-10T07:08:01.1695612Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.1696463Z               "line": 74
2026-06-10T07:08:01.1697128Z             },
2026-06-10T07:08:01.1697734Z             {
2026-06-10T07:08:01.1698416Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.1699330Z               "line": 96
2026-06-10T07:08:01.1700000Z             },
2026-06-10T07:08:01.1700601Z             {
2026-06-10T07:08:01.1701278Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T07:08:01.1701570Z               "line": 81
2026-06-10T07:08:01.1701845Z             },
2026-06-10T07:08:01.1702124Z             {
2026-06-10T07:08:01.1702491Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-10T07:08:01.1702787Z               "line": 118
2026-06-10T07:08:01.1703073Z             }
2026-06-10T07:08:01.1703354Z           ]
2026-06-10T07:08:01.1703631Z         },
2026-06-10T07:08:01.1703913Z         "int": {
2026-06-10T07:08:01.1704218Z           "complete": false,
2026-06-10T07:08:01.1704519Z           "evidence": []
2026-06-10T07:08:01.1704788Z         },
2026-06-10T07:08:01.1705074Z         "unit": {
2026-06-10T07:08:01.1705370Z           "complete": true,
2026-06-10T07:08:01.1705652Z           "evidence": [
2026-06-10T07:08:01.1705928Z             {
2026-06-10T07:08:01.1706300Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-10T07:08:01.1706604Z               "line": 212
2026-06-10T07:08:01.1706886Z             },
2026-06-10T07:08:01.1707171Z             {
2026-06-10T07:08:01.1707528Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T07:08:01.1707823Z               "line": 258
2026-06-10T07:08:01.1708109Z             }
2026-06-10T07:08:01.1708495Z           ]
2026-06-10T07:08:01.1708777Z         }
2026-06-10T07:08:01.1709152Z       }
2026-06-10T07:08:01.1709430Z     },
2026-06-10T07:08:01.1709702Z     {
2026-06-10T07:08:01.1710015Z       "id": "REQ-INST-3",
2026-06-10T07:08:01.1710465Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-10T07:08:01.1710879Z       "requiredStages": [
2026-06-10T07:08:01.1711166Z         "doc",
2026-06-10T07:08:01.1711447Z         "impl",
2026-06-10T07:08:01.1711733Z         "unit"
2026-06-10T07:08:01.1712010Z       ],
2026-06-10T07:08:01.1712297Z       "stages": {
2026-06-10T07:08:01.1712577Z         "doc": {
2026-06-10T07:08:01.1712880Z           "complete": true,
2026-06-10T07:08:01.1713175Z           "evidence": [
2026-06-10T07:08:01.1713456Z             {
2026-06-10T07:08:01.1713800Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-10T07:08:01.1714086Z               "line": 3
2026-06-10T07:08:01.1714367Z             }
2026-06-10T07:08:01.1714644Z           ]
2026-06-10T07:08:01.1714939Z         },
2026-06-10T07:08:01.1715225Z         "impl": {
2026-06-10T07:08:01.1715526Z           "complete": true,
2026-06-10T07:08:01.1715817Z           "evidence": [
2026-06-10T07:08:01.1716098Z             {
2026-06-10T07:08:01.1716479Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T07:08:01.1716765Z               "line": 70
2026-06-10T07:08:01.1717042Z             },
2026-06-10T07:08:01.1717318Z             {
2026-06-10T07:08:01.1717693Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.1717987Z               "line": 480
2026-06-10T07:08:01.1718253Z             },
2026-06-10T07:08:01.1718525Z             {
2026-06-10T07:08:01.1718917Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1719275Z               "line": 202
2026-06-10T07:08:01.1719561Z             },
2026-06-10T07:08:01.1719846Z             {
2026-06-10T07:08:01.1720243Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1720551Z               "line": 291
2026-06-10T07:08:01.1720835Z             },
2026-06-10T07:08:01.1721120Z             {
2026-06-10T07:08:01.1721503Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1721793Z               "line": 325
2026-06-10T07:08:01.1722152Z             },
2026-06-10T07:08:01.1722510Z             {
2026-06-10T07:08:01.1723012Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.1723325Z               "line": 341
2026-06-10T07:08:01.1723616Z             },
2026-06-10T07:08:01.1723897Z             {
2026-06-10T07:08:01.1724298Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1724583Z               "line": 218
2026-06-10T07:08:01.1724870Z             },
2026-06-10T07:08:01.1725137Z             {
2026-06-10T07:08:01.1725542Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1725837Z               "line": 374
2026-06-10T07:08:01.1726114Z             },
2026-06-10T07:08:01.1726405Z             {
2026-06-10T07:08:01.1726819Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1727120Z               "line": 45
2026-06-10T07:08:01.1727392Z             },
2026-06-10T07:08:01.1727664Z             {
2026-06-10T07:08:01.1728035Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1728315Z               "line": 114
2026-06-10T07:08:01.1728624Z             },
2026-06-10T07:08:01.1728900Z             {
2026-06-10T07:08:01.1729348Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1729649Z               "line": 152
2026-06-10T07:08:01.1729930Z             },
2026-06-10T07:08:01.1730212Z             {
2026-06-10T07:08:01.1730601Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1730888Z               "line": 168
2026-06-10T07:08:01.1731163Z             },
2026-06-10T07:08:01.1731447Z             {
2026-06-10T07:08:01.1731815Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1732392Z               "line": 178
2026-06-10T07:08:01.1732693Z             },
2026-06-10T07:08:01.1732968Z             {
2026-06-10T07:08:01.1733346Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1733649Z               "line": 210
2026-06-10T07:08:01.1733922Z             },
2026-06-10T07:08:01.1734310Z             {
2026-06-10T07:08:01.1734687Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1734988Z               "line": 287
2026-06-10T07:08:01.1735264Z             },
2026-06-10T07:08:01.1735550Z             {
2026-06-10T07:08:01.1735918Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1736218Z               "line": 311
2026-06-10T07:08:01.1736487Z             },
2026-06-10T07:08:01.1736759Z             {
2026-06-10T07:08:01.1737136Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1737422Z               "line": 387
2026-06-10T07:08:01.1737718Z             },
2026-06-10T07:08:01.1737999Z             {
2026-06-10T07:08:01.1738385Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1738689Z               "line": 436
2026-06-10T07:08:01.1739044Z             },
2026-06-10T07:08:01.1739325Z             {
2026-06-10T07:08:01.1739703Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-10T07:08:01.1740018Z               "line": 37
2026-06-10T07:08:01.1740293Z             },
2026-06-10T07:08:01.1740566Z             {
2026-06-10T07:08:01.1740937Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1741229Z               "line": 62
2026-06-10T07:08:01.1741509Z             },
2026-06-10T07:08:01.1741784Z             {
2026-06-10T07:08:01.1742146Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.1742442Z               "line": 190
2026-06-10T07:08:01.1742727Z             },
2026-06-10T07:08:01.1743010Z             {
2026-06-10T07:08:01.1743339Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1743649Z               "line": 1186
2026-06-10T07:08:01.1743925Z             }
2026-06-10T07:08:01.1744214Z           ]
2026-06-10T07:08:01.1744487Z         },
2026-06-10T07:08:01.1744774Z         "int": {
2026-06-10T07:08:01.1745185Z           "complete": false,
2026-06-10T07:08:01.1745509Z           "evidence": []
2026-06-10T07:08:01.1745790Z         },
2026-06-10T07:08:01.1746081Z         "unit": {
2026-06-10T07:08:01.1746391Z           "complete": true,
2026-06-10T07:08:01.1746686Z           "evidence": [
2026-06-10T07:08:01.1746967Z             {
2026-06-10T07:08:01.1747352Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:01.1747644Z               "line": 360
2026-06-10T07:08:01.1747920Z             },
2026-06-10T07:08:01.1748197Z             {
2026-06-10T07:08:01.1748593Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1748883Z               "line": 664
2026-06-10T07:08:01.1749566Z             },
2026-06-10T07:08:01.1749872Z             {
2026-06-10T07:08:01.1750297Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1750602Z               "line": 721
2026-06-10T07:08:01.1750883Z             },
2026-06-10T07:08:01.1751164Z             {
2026-06-10T07:08:01.1751566Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1751871Z               "line": 1182
2026-06-10T07:08:01.1752155Z             },
2026-06-10T07:08:01.1752433Z             {
2026-06-10T07:08:01.1752844Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1753139Z               "line": 1322
2026-06-10T07:08:01.1753425Z             },
2026-06-10T07:08:01.1753707Z             {
2026-06-10T07:08:01.1754084Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1754379Z               "line": 447
2026-06-10T07:08:01.1754655Z             },
2026-06-10T07:08:01.1754939Z             {
2026-06-10T07:08:01.1755320Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1755821Z               "line": 483
2026-06-10T07:08:01.1756108Z             },
2026-06-10T07:08:01.1756389Z             {
2026-06-10T07:08:01.1756761Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1757052Z               "line": 538
2026-06-10T07:08:01.1757333Z             },
2026-06-10T07:08:01.1757704Z             {
2026-06-10T07:08:01.1758095Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1758390Z               "line": 695
2026-06-10T07:08:01.1758667Z             },
2026-06-10T07:08:01.1759091Z             {
2026-06-10T07:08:01.1759525Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1759824Z               "line": 929
2026-06-10T07:08:01.1760108Z             },
2026-06-10T07:08:01.1760389Z             {
2026-06-10T07:08:01.1760775Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1761066Z               "line": 943
2026-06-10T07:08:01.1761371Z             },
2026-06-10T07:08:01.1761643Z             {
2026-06-10T07:08:01.1762029Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1762310Z               "line": 1193
2026-06-10T07:08:01.1762592Z             },
2026-06-10T07:08:01.1762862Z             {
2026-06-10T07:08:01.1763224Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.1763528Z               "line": 413
2026-06-10T07:08:01.1763801Z             },
2026-06-10T07:08:01.1764082Z             {
2026-06-10T07:08:01.1764416Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1764707Z               "line": 5419
2026-06-10T07:08:01.1764988Z             }
2026-06-10T07:08:01.1765262Z           ]
2026-06-10T07:08:01.1765537Z         }
2026-06-10T07:08:01.1765805Z       }
2026-06-10T07:08:01.1766071Z     },
2026-06-10T07:08:01.1766334Z     {
2026-06-10T07:08:01.1766634Z       "id": "REQ-INST-4",
2026-06-10T07:08:01.1767177Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-10T07:08:01.1767492Z       "requiredStages": [
2026-06-10T07:08:01.1767773Z         "impl",
2026-06-10T07:08:01.1768058Z         "unit"
2026-06-10T07:08:01.1768332Z       ],
2026-06-10T07:08:01.1768602Z       "stages": {
2026-06-10T07:08:01.1768884Z         "doc": {
2026-06-10T07:08:01.1769289Z           "complete": false,
2026-06-10T07:08:01.1769584Z           "evidence": []
2026-06-10T07:08:01.1769857Z         },
2026-06-10T07:08:01.1770133Z         "impl": {
2026-06-10T07:08:01.1770427Z           "complete": true,
2026-06-10T07:08:01.1770715Z           "evidence": [
2026-06-10T07:08:01.1771002Z             {
2026-06-10T07:08:01.1771388Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1771664Z               "line": 292
2026-06-10T07:08:01.1771950Z             },
2026-06-10T07:08:01.1772227Z             {
2026-06-10T07:08:01.1772609Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1772885Z               "line": 202
2026-06-10T07:08:01.1773176Z             },
2026-06-10T07:08:01.1773450Z             {
2026-06-10T07:08:01.1773821Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1774113Z               "line": 234
2026-06-10T07:08:01.1774394Z             },
2026-06-10T07:08:01.1774675Z             {
2026-06-10T07:08:01.1775047Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1775329Z               "line": 274
2026-06-10T07:08:01.1775615Z             }
2026-06-10T07:08:01.1775889Z           ]
2026-06-10T07:08:01.1776159Z         },
2026-06-10T07:08:01.1776435Z         "int": {
2026-06-10T07:08:01.1776740Z           "complete": false,
2026-06-10T07:08:01.1777037Z           "evidence": []
2026-06-10T07:08:01.1777303Z         },
2026-06-10T07:08:01.1777604Z         "unit": {
2026-06-10T07:08:01.1777905Z           "complete": true,
2026-06-10T07:08:01.1778201Z           "evidence": [
2026-06-10T07:08:01.1778477Z             {
2026-06-10T07:08:01.1778872Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.1779386Z               "line": 716
2026-06-10T07:08:01.1779662Z             },
2026-06-10T07:08:01.1779953Z             {
2026-06-10T07:08:01.1780369Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1780669Z               "line": 559
2026-06-10T07:08:01.1780958Z             },
2026-06-10T07:08:01.1781342Z             {
2026-06-10T07:08:01.1781729Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1782025Z               "line": 666
2026-06-10T07:08:01.1782307Z             },
2026-06-10T07:08:01.1782587Z             {
2026-06-10T07:08:01.1782965Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1783260Z               "line": 748
2026-06-10T07:08:01.1783542Z             }
2026-06-10T07:08:01.1783830Z           ]
2026-06-10T07:08:01.1784109Z         }
2026-06-10T07:08:01.1784396Z       }
2026-06-10T07:08:01.1784668Z     },
2026-06-10T07:08:01.1784954Z     {
2026-06-10T07:08:01.1785264Z       "id": "REQ-INST-5",
2026-06-10T07:08:01.1785832Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-10T07:08:01.1786142Z       "requiredStages": [
2026-06-10T07:08:01.1786425Z         "impl",
2026-06-10T07:08:01.1786719Z         "unit",
2026-06-10T07:08:01.1786995Z         "int"
2026-06-10T07:08:01.1787286Z       ],
2026-06-10T07:08:01.1787578Z       "stages": {
2026-06-10T07:08:01.1787864Z         "doc": {
2026-06-10T07:08:01.1788164Z           "complete": false,
2026-06-10T07:08:01.1788451Z           "evidence": []
2026-06-10T07:08:01.1788732Z         },
2026-06-10T07:08:01.1789081Z         "impl": {
2026-06-10T07:08:01.1789394Z           "complete": true,
2026-06-10T07:08:01.1789675Z           "evidence": [
2026-06-10T07:08:01.1789966Z             {
2026-06-10T07:08:01.1790343Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.1790629Z               "line": 41
2026-06-10T07:08:01.1790915Z             },
2026-06-10T07:08:01.1791186Z             {
2026-06-10T07:08:01.1791557Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1791849Z               "line": 68
2026-06-10T07:08:01.1792126Z             },
2026-06-10T07:08:01.1792407Z             {
2026-06-10T07:08:01.1792775Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1793070Z               "line": 99
2026-06-10T07:08:01.1793348Z             },
2026-06-10T07:08:01.1793633Z             {
2026-06-10T07:08:01.1793996Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1794296Z               "line": 183
2026-06-10T07:08:01.1794575Z             },
2026-06-10T07:08:01.1794856Z             {
2026-06-10T07:08:01.1795223Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1795514Z               "line": 314
2026-06-10T07:08:01.1795800Z             }
2026-06-10T07:08:01.1796078Z           ]
2026-06-10T07:08:01.1796363Z         },
2026-06-10T07:08:01.1796644Z         "int": {
2026-06-10T07:08:01.1796962Z           "complete": true,
2026-06-10T07:08:01.1797259Z           "evidence": [
2026-06-10T07:08:01.1797537Z             {
2026-06-10T07:08:01.1797937Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.1798232Z               "line": 156
2026-06-10T07:08:01.1798514Z             },
2026-06-10T07:08:01.1798791Z             {
2026-06-10T07:08:01.1799312Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-10T07:08:01.1799645Z               "line": 102
2026-06-10T07:08:01.1799920Z             },
2026-06-10T07:08:01.1800201Z             {
2026-06-10T07:08:01.1800588Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.1800893Z               "line": 637
2026-06-10T07:08:01.1801175Z             },
2026-06-10T07:08:01.1801455Z             {
2026-06-10T07:08:01.1801843Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.1802141Z               "line": 974
2026-06-10T07:08:01.1802419Z             }
2026-06-10T07:08:01.1802801Z           ]
2026-06-10T07:08:01.1803083Z         },
2026-06-10T07:08:01.1803364Z         "unit": {
2026-06-10T07:08:01.1803659Z           "complete": true,
2026-06-10T07:08:01.1803950Z           "evidence": [
2026-06-10T07:08:01.1804222Z             {
2026-06-10T07:08:01.1804580Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1805013Z               "line": 531
2026-06-10T07:08:01.1805388Z             },
2026-06-10T07:08:01.1805669Z             {
2026-06-10T07:08:01.1806045Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.1806351Z               "line": 574
2026-06-10T07:08:01.1806623Z             },
2026-06-10T07:08:01.1806909Z             {
2026-06-10T07:08:01.1807291Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T07:08:01.1807594Z               "line": 219
2026-06-10T07:08:01.1807887Z             }
2026-06-10T07:08:01.1808168Z           ]
2026-06-10T07:08:01.1808459Z         }
2026-06-10T07:08:01.1808750Z       }
2026-06-10T07:08:01.1809112Z     },
2026-06-10T07:08:01.1809389Z     {
2026-06-10T07:08:01.1809690Z       "id": "REQ-INST-6",
2026-06-10T07:08:01.1810285Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-10T07:08:01.1810590Z       "requiredStages": [
2026-06-10T07:08:01.1810881Z         "impl",
2026-06-10T07:08:01.1811172Z         "unit",
2026-06-10T07:08:01.1811463Z         "int"
2026-06-10T07:08:01.1811740Z       ],
2026-06-10T07:08:01.1812035Z       "stages": {
2026-06-10T07:08:01.1812321Z         "doc": {
2026-06-10T07:08:01.1812625Z           "complete": true,
2026-06-10T07:08:01.1812923Z           "evidence": [
2026-06-10T07:08:01.1813199Z             {
2026-06-10T07:08:01.1813523Z               "path": "docs/DEFERRED.md",
2026-06-10T07:08:01.1813819Z               "line": 13
2026-06-10T07:08:01.1814110Z             }
2026-06-10T07:08:01.1814401Z           ]
2026-06-10T07:08:01.1814679Z         },
2026-06-10T07:08:01.1814955Z         "impl": {
2026-06-10T07:08:01.1815260Z           "complete": true,
2026-06-10T07:08:01.1815578Z           "evidence": [
2026-06-10T07:08:01.1815856Z             {
2026-06-10T07:08:01.1816239Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.1816549Z               "line": 391
2026-06-10T07:08:01.1816815Z             },
2026-06-10T07:08:01.1817091Z             {
2026-06-10T07:08:01.1817493Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T07:08:01.1817803Z               "line": 27
2026-06-10T07:08:01.1818082Z             },
2026-06-10T07:08:01.1818380Z             {
2026-06-10T07:08:01.1818767Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T07:08:01.1819130Z               "line": 73
2026-06-10T07:08:01.1819426Z             },
2026-06-10T07:08:01.1819701Z             {
2026-06-10T07:08:01.1820079Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-10T07:08:01.1820370Z               "line": 182
2026-06-10T07:08:01.1820651Z             },
2026-06-10T07:08:01.1820949Z             {
2026-06-10T07:08:01.1821326Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1821622Z               "line": 424
2026-06-10T07:08:01.1821902Z             },
2026-06-10T07:08:01.1822184Z             {
2026-06-10T07:08:01.1822546Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-10T07:08:01.1822847Z               "line": 31
2026-06-10T07:08:01.1823132Z             },
2026-06-10T07:08:01.1823412Z             {
2026-06-10T07:08:01.1823783Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.1824070Z               "line": 182
2026-06-10T07:08:01.1824356Z             },
2026-06-10T07:08:01.1824642Z             {
2026-06-10T07:08:01.1824999Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:01.1825492Z               "line": 81
2026-06-10T07:08:01.1825772Z             },
2026-06-10T07:08:01.1826066Z             {
2026-06-10T07:08:01.1826411Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1826923Z               "line": 1187
2026-06-10T07:08:01.1827194Z             },
2026-06-10T07:08:01.1827476Z             {
2026-06-10T07:08:01.1827819Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.1828111Z               "line": 179
2026-06-10T07:08:01.1828397Z             },
2026-06-10T07:08:01.1828671Z             {
2026-06-10T07:08:01.1829183Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.1829484Z               "line": 215
2026-06-10T07:08:01.1829785Z             }
2026-06-10T07:08:01.1830066Z           ]
2026-06-10T07:08:01.1830339Z         },
2026-06-10T07:08:01.1830615Z         "int": {
2026-06-10T07:08:01.1830911Z           "complete": true,
2026-06-10T07:08:01.1831206Z           "evidence": [
2026-06-10T07:08:01.1831485Z             {
2026-06-10T07:08:01.1831872Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.1832172Z               "line": 651
2026-06-10T07:08:01.1832453Z             },
2026-06-10T07:08:01.1832749Z             {
2026-06-10T07:08:01.1833141Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.1833441Z               "line": 1019
2026-06-10T07:08:01.1833730Z             },
2026-06-10T07:08:01.1834010Z             {
2026-06-10T07:08:01.1834357Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.1834658Z               "line": 725
2026-06-10T07:08:01.1834944Z             }
2026-06-10T07:08:01.1835221Z           ]
2026-06-10T07:08:01.1835507Z         },
2026-06-10T07:08:01.1835794Z         "unit": {
2026-06-10T07:08:01.1836094Z           "complete": true,
2026-06-10T07:08:01.1836708Z           "evidence": [
2026-06-10T07:08:01.1837020Z             {
2026-06-10T07:08:01.1837397Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.1837702Z               "line": 660
2026-06-10T07:08:01.1837984Z             },
2026-06-10T07:08:01.1841418Z             {
2026-06-10T07:08:01.1841843Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.1842151Z               "line": 897
2026-06-10T07:08:01.1842466Z             },
2026-06-10T07:08:01.1842747Z             {
2026-06-10T07:08:01.1843115Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-10T07:08:01.1843405Z               "line": 66
2026-06-10T07:08:01.1843691Z             },
2026-06-10T07:08:01.1843977Z             {
2026-06-10T07:08:01.1844348Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.1844641Z               "line": 272
2026-06-10T07:08:01.1844922Z             },
2026-06-10T07:08:01.1845194Z             {
2026-06-10T07:08:01.1845552Z               "path": "crates/spt/src/api/worker.rs",
2026-06-10T07:08:01.1845838Z               "line": 201
2026-06-10T07:08:01.1846115Z             }
2026-06-10T07:08:01.1846396Z           ]
2026-06-10T07:08:01.1846664Z         }
2026-06-10T07:08:01.1846941Z       }
2026-06-10T07:08:01.1847215Z     },
2026-06-10T07:08:01.1847489Z     {
2026-06-10T07:08:01.1847789Z       "id": "REQ-INST-7",
2026-06-10T07:08:01.1848229Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-10T07:08:01.1848534Z       "requiredStages": [
2026-06-10T07:08:01.1848815Z         "impl",
2026-06-10T07:08:01.1849179Z         "unit",
2026-06-10T07:08:01.1849454Z         "int"
2026-06-10T07:08:01.1849734Z       ],
2026-06-10T07:08:01.1850022Z       "stages": {
2026-06-10T07:08:01.1850304Z         "doc": {
2026-06-10T07:08:01.1850601Z           "complete": false,
2026-06-10T07:08:01.1850881Z           "evidence": []
2026-06-10T07:08:01.1851154Z         },
2026-06-10T07:08:01.1851430Z         "impl": {
2026-06-10T07:08:01.1851740Z           "complete": true,
2026-06-10T07:08:01.1852036Z           "evidence": [
2026-06-10T07:08:01.1852317Z             {
2026-06-10T07:08:01.1852696Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.1852987Z               "line": 436
2026-06-10T07:08:01.1853268Z             },
2026-06-10T07:08:01.1853540Z             {
2026-06-10T07:08:01.1854093Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.1854385Z               "line": 42
2026-06-10T07:08:01.1854667Z             },
2026-06-10T07:08:01.1854946Z             {
2026-06-10T07:08:01.1855350Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1855645Z               "line": 27
2026-06-10T07:08:01.1856017Z             },
2026-06-10T07:08:01.1856298Z             {
2026-06-10T07:08:01.1856708Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1856994Z               "line": 191
2026-06-10T07:08:01.1857276Z             },
2026-06-10T07:08:01.1857548Z             {
2026-06-10T07:08:01.1857950Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1858241Z               "line": 328
2026-06-10T07:08:01.1858517Z             },
2026-06-10T07:08:01.1858803Z             {
2026-06-10T07:08:01.1859256Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-10T07:08:01.1859565Z               "line": 59
2026-06-10T07:08:01.1859838Z             },
2026-06-10T07:08:01.1860120Z             {
2026-06-10T07:08:01.1860507Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1860793Z               "line": 41
2026-06-10T07:08:01.1861084Z             },
2026-06-10T07:08:01.1861361Z             {
2026-06-10T07:08:01.1861756Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.1862043Z               "line": 27
2026-06-10T07:08:01.1862314Z             },
2026-06-10T07:08:01.1862591Z             {
2026-06-10T07:08:01.1862978Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.1863266Z               "line": 119
2026-06-10T07:08:01.1863542Z             },
2026-06-10T07:08:01.1863829Z             {
2026-06-10T07:08:01.1864211Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.1864511Z               "line": 134
2026-06-10T07:08:01.1864792Z             },
2026-06-10T07:08:01.1865068Z             {
2026-06-10T07:08:01.1865434Z               "path": "crates/spt-store/src/registry.rs",
2026-06-10T07:08:01.1865719Z               "line": 139
2026-06-10T07:08:01.1866014Z             }
2026-06-10T07:08:01.1866281Z           ]
2026-06-10T07:08:01.1866558Z         },
2026-06-10T07:08:01.1866839Z         "int": {
2026-06-10T07:08:01.1867136Z           "complete": true,
2026-06-10T07:08:01.1867436Z           "evidence": [
2026-06-10T07:08:01.1867708Z             {
2026-06-10T07:08:01.1868104Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-10T07:08:01.1868388Z               "line": 102
2026-06-10T07:08:01.1868667Z             },
2026-06-10T07:08:01.1869030Z             {
2026-06-10T07:08:01.1869420Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.1869711Z               "line": 595
2026-06-10T07:08:01.1869989Z             },
2026-06-10T07:08:01.1870322Z             {
2026-06-10T07:08:01.1870704Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.1871002Z               "line": 869
2026-06-10T07:08:01.1871277Z             }
2026-06-10T07:08:01.1871557Z           ]
2026-06-10T07:08:01.1871834Z         },
2026-06-10T07:08:01.1872106Z         "unit": {
2026-06-10T07:08:01.1872411Z           "complete": true,
2026-06-10T07:08:01.1872688Z           "evidence": [
2026-06-10T07:08:01.1872974Z             {
2026-06-10T07:08:01.1873379Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1873669Z               "line": 1052
2026-06-10T07:08:01.1873937Z             },
2026-06-10T07:08:01.1874204Z             {
2026-06-10T07:08:01.1874605Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.1874904Z               "line": 1383
2026-06-10T07:08:01.1875200Z             },
2026-06-10T07:08:01.1875482Z             {
2026-06-10T07:08:01.1875871Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-10T07:08:01.1876161Z               "line": 84
2026-06-10T07:08:01.1876550Z             },
2026-06-10T07:08:01.1876837Z             {
2026-06-10T07:08:01.1877217Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1877513Z               "line": 763
2026-06-10T07:08:01.1877790Z             },
2026-06-10T07:08:01.1878062Z             {
2026-06-10T07:08:01.1878539Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1878829Z               "line": 774
2026-06-10T07:08:01.1879197Z             },
2026-06-10T07:08:01.1879479Z             {
2026-06-10T07:08:01.1879856Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1880156Z               "line": 789
2026-06-10T07:08:01.1880433Z             },
2026-06-10T07:08:01.1880714Z             {
2026-06-10T07:08:01.1881101Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.1881395Z               "line": 165
2026-06-10T07:08:01.1881675Z             },
2026-06-10T07:08:01.1881947Z             {
2026-06-10T07:08:01.1882346Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.1882642Z               "line": 180
2026-06-10T07:08:01.1882923Z             },
2026-06-10T07:08:01.1883196Z             {
2026-06-10T07:08:01.1883581Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.1883872Z               "line": 213
2026-06-10T07:08:01.1884159Z             }
2026-06-10T07:08:01.1884445Z           ]
2026-06-10T07:08:01.1884711Z         }
2026-06-10T07:08:01.1884992Z       }
2026-06-10T07:08:01.1885249Z     },
2026-06-10T07:08:01.1885531Z     {
2026-06-10T07:08:01.1885869Z       "id": "REQ-INST-8",
2026-06-10T07:08:01.1886338Z       "title": "Remote-control mode distinct from local operation",
2026-06-10T07:08:01.1886660Z       "requiredStages": [
2026-06-10T07:08:01.1886943Z         "impl",
2026-06-10T07:08:01.1887263Z         "unit",
2026-06-10T07:08:01.1887534Z         "int"
2026-06-10T07:08:01.1887811Z       ],
2026-06-10T07:08:01.1888088Z       "stages": {
2026-06-10T07:08:01.1888360Z         "doc": {
2026-06-10T07:08:01.1888655Z           "complete": false,
2026-06-10T07:08:01.1889032Z           "evidence": []
2026-06-10T07:08:01.1889303Z         },
2026-06-10T07:08:01.1889574Z         "impl": {
2026-06-10T07:08:01.1889868Z           "complete": true,
2026-06-10T07:08:01.1890160Z           "evidence": [
2026-06-10T07:08:01.1890431Z             {
2026-06-10T07:08:01.1890808Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T07:08:01.1891094Z               "line": 98
2026-06-10T07:08:01.1891380Z             },
2026-06-10T07:08:01.1891647Z             {
2026-06-10T07:08:01.1892022Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T07:08:01.1892315Z               "line": 209
2026-06-10T07:08:01.1892597Z             },
2026-06-10T07:08:01.1892864Z             {
2026-06-10T07:08:01.1893259Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T07:08:01.1893545Z               "line": 230
2026-06-10T07:08:01.1893818Z             },
2026-06-10T07:08:01.1894104Z             {
2026-06-10T07:08:01.1894470Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-10T07:08:01.1894752Z               "line": 35
2026-06-10T07:08:01.1895028Z             }
2026-06-10T07:08:01.1895300Z           ]
2026-06-10T07:08:01.1895572Z         },
2026-06-10T07:08:01.1895843Z         "int": {
2026-06-10T07:08:01.1896148Z           "complete": true,
2026-06-10T07:08:01.1896439Z           "evidence": [
2026-06-10T07:08:01.1896912Z             {
2026-06-10T07:08:01.1897316Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.1897606Z               "line": 415
2026-06-10T07:08:01.1897877Z             },
2026-06-10T07:08:01.1898148Z             {
2026-06-10T07:08:01.1898530Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.1898816Z               "line": 933
2026-06-10T07:08:01.1899174Z             }
2026-06-10T07:08:01.1899451Z           ]
2026-06-10T07:08:01.1899717Z         },
2026-06-10T07:08:01.1900000Z         "unit": {
2026-06-10T07:08:01.1900409Z           "complete": true,
2026-06-10T07:08:01.1900705Z           "evidence": [
2026-06-10T07:08:01.1900991Z             {
2026-06-10T07:08:01.1901368Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T07:08:01.1901659Z               "line": 181
2026-06-10T07:08:01.1901935Z             },
2026-06-10T07:08:01.1902318Z             {
2026-06-10T07:08:01.1902710Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T07:08:01.1903015Z               "line": 259
2026-06-10T07:08:01.1903296Z             },
2026-06-10T07:08:01.1903567Z             {
2026-06-10T07:08:01.1903949Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-10T07:08:01.1904236Z               "line": 70
2026-06-10T07:08:01.1904516Z             },
2026-06-10T07:08:01.1904792Z             {
2026-06-10T07:08:01.1905415Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-10T07:08:01.1905707Z               "line": 110
2026-06-10T07:08:01.1905993Z             }
2026-06-10T07:08:01.1906260Z           ]
2026-06-10T07:08:01.1906532Z         }
2026-06-10T07:08:01.1906804Z       }
2026-06-10T07:08:01.1907076Z     },
2026-06-10T07:08:01.1907352Z     {
2026-06-10T07:08:01.1907637Z       "id": "REQ-INST-9",
2026-06-10T07:08:01.1908207Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-10T07:08:01.1908531Z       "requiredStages": [
2026-06-10T07:08:01.1908808Z         "impl",
2026-06-10T07:08:01.1909189Z         "unit"
2026-06-10T07:08:01.1909451Z       ],
2026-06-10T07:08:01.1909743Z       "stages": {
2026-06-10T07:08:01.1910029Z         "doc": {
2026-06-10T07:08:01.1910325Z           "complete": false,
2026-06-10T07:08:01.1910623Z           "evidence": []
2026-06-10T07:08:01.1910902Z         },
2026-06-10T07:08:01.1911188Z         "impl": {
2026-06-10T07:08:01.1911479Z           "complete": true,
2026-06-10T07:08:01.1911770Z           "evidence": [
2026-06-10T07:08:01.1912052Z             {
2026-06-10T07:08:01.1912442Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1912733Z               "line": 401
2026-06-10T07:08:01.1913004Z             }
2026-06-10T07:08:01.1913284Z           ]
2026-06-10T07:08:01.1913555Z         },
2026-06-10T07:08:01.1913837Z         "int": {
2026-06-10T07:08:01.1914142Z           "complete": false,
2026-06-10T07:08:01.1914433Z           "evidence": []
2026-06-10T07:08:01.1914713Z         },
2026-06-10T07:08:01.1915000Z         "unit": {
2026-06-10T07:08:01.1915305Z           "complete": true,
2026-06-10T07:08:01.1915581Z           "evidence": [
2026-06-10T07:08:01.1915876Z             {
2026-06-10T07:08:01.1916262Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1916544Z               "line": 1300
2026-06-10T07:08:01.1916825Z             },
2026-06-10T07:08:01.1917097Z             {
2026-06-10T07:08:01.1917483Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1917779Z               "line": 1309
2026-06-10T07:08:01.1918080Z             },
2026-06-10T07:08:01.1918364Z             {
2026-06-10T07:08:01.1918744Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1919091Z               "line": 1325
2026-06-10T07:08:01.1919373Z             },
2026-06-10T07:08:01.1919645Z             {
2026-06-10T07:08:01.1920035Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1920331Z               "line": 1337
2026-06-10T07:08:01.1920609Z             },
2026-06-10T07:08:01.1920880Z             {
2026-06-10T07:08:01.1921269Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.1921563Z               "line": 1357
2026-06-10T07:08:01.1921840Z             }
2026-06-10T07:08:01.1922126Z           ]
2026-06-10T07:08:01.1922402Z         }
2026-06-10T07:08:01.1922678Z       }
2026-06-10T07:08:01.1922955Z     },
2026-06-10T07:08:01.1923231Z     {
2026-06-10T07:08:01.1923555Z       "id": "REQ-INSTALL-1",
2026-06-10T07:08:01.1924149Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-10T07:08:01.1924582Z       "requiredStages": [
2026-06-10T07:08:01.1924864Z         "doc",
2026-06-10T07:08:01.1925150Z         "impl",
2026-06-10T07:08:01.1925426Z         "int"
2026-06-10T07:08:01.1925709Z       ],
2026-06-10T07:08:01.1925995Z       "stages": {
2026-06-10T07:08:01.1926394Z         "doc": {
2026-06-10T07:08:01.1926694Z           "complete": true,
2026-06-10T07:08:01.1926990Z           "evidence": [
2026-06-10T07:08:01.1927267Z             {
2026-06-10T07:08:01.1927571Z               "path": "CONTEXT.md",
2026-06-10T07:08:01.1927862Z               "line": 576
2026-06-10T07:08:01.1928143Z             }
2026-06-10T07:08:01.1928415Z           ]
2026-06-10T07:08:01.1928682Z         },
2026-06-10T07:08:01.1929037Z         "impl": {
2026-06-10T07:08:01.1929346Z           "complete": true,
2026-06-10T07:08:01.1929633Z           "evidence": [
2026-06-10T07:08:01.1929914Z             {
2026-06-10T07:08:01.1930253Z               "path": "installer/install.ps1",
2026-06-10T07:08:01.1930562Z               "line": 57
2026-06-10T07:08:01.1930830Z             },
2026-06-10T07:08:01.1931112Z             {
2026-06-10T07:08:01.1931445Z               "path": "installer/install.sh",
2026-06-10T07:08:01.1931734Z               "line": 52
2026-06-10T07:08:01.1932017Z             }
2026-06-10T07:08:01.1932303Z           ]
2026-06-10T07:08:01.1932589Z         },
2026-06-10T07:08:01.1932862Z         "int": {
2026-06-10T07:08:01.1933162Z           "complete": true,
2026-06-10T07:08:01.1933448Z           "evidence": [
2026-06-10T07:08:01.1933721Z             {
2026-06-10T07:08:01.1934102Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-10T07:08:01.1934391Z               "line": 21
2026-06-10T07:08:01.1934666Z             }
2026-06-10T07:08:01.1934942Z           ]
2026-06-10T07:08:01.1935218Z         },
2026-06-10T07:08:01.1935500Z         "unit": {
2026-06-10T07:08:01.1935795Z           "complete": false,
2026-06-10T07:08:01.1936096Z           "evidence": []
2026-06-10T07:08:01.1936367Z         }
2026-06-10T07:08:01.1936649Z       }
2026-06-10T07:08:01.1936918Z     },
2026-06-10T07:08:01.1937197Z     {
2026-06-10T07:08:01.1937502Z       "id": "REQ-INSTALL-2",
2026-06-10T07:08:01.1937922Z       "title": "Marketplace-repackaging-friendly install",
2026-06-10T07:08:01.1938222Z       "requiredStages": [
2026-06-10T07:08:01.1938499Z         "doc"
2026-06-10T07:08:01.1938781Z       ],
2026-06-10T07:08:01.1939139Z       "stages": {
2026-06-10T07:08:01.1939422Z         "doc": {
2026-06-10T07:08:01.1939730Z           "complete": true,
2026-06-10T07:08:01.1940021Z           "evidence": [
2026-06-10T07:08:01.1940292Z             {
2026-06-10T07:08:01.1940588Z               "path": "CONTEXT.md",
2026-06-10T07:08:01.1940879Z               "line": 577
2026-06-10T07:08:01.1941151Z             }
2026-06-10T07:08:01.1941423Z           ]
2026-06-10T07:08:01.1941700Z         },
2026-06-10T07:08:01.1941972Z         "impl": {
2026-06-10T07:08:01.1942280Z           "complete": false,
2026-06-10T07:08:01.1942568Z           "evidence": []
2026-06-10T07:08:01.1942839Z         },
2026-06-10T07:08:01.1943121Z         "int": {
2026-06-10T07:08:01.1943422Z           "complete": false,
2026-06-10T07:08:01.1943717Z           "evidence": []
2026-06-10T07:08:01.1943990Z         },
2026-06-10T07:08:01.1944272Z         "unit": {
2026-06-10T07:08:01.1944572Z           "complete": false,
2026-06-10T07:08:01.1944861Z           "evidence": []
2026-06-10T07:08:01.1945350Z         }
2026-06-10T07:08:01.1945632Z       }
2026-06-10T07:08:01.1945908Z     },
2026-06-10T07:08:01.1946175Z     {
2026-06-10T07:08:01.1946476Z       "id": "REQ-INSTALL-3",
2026-06-10T07:08:01.1946913Z       "title": "Idempotent + interactive-optional first run",
2026-06-10T07:08:01.1947209Z       "requiredStages": [
2026-06-10T07:08:01.1947487Z         "impl",
2026-06-10T07:08:01.1947762Z         "int"
2026-06-10T07:08:01.1948043Z       ],
2026-06-10T07:08:01.1948323Z       "stages": {
2026-06-10T07:08:01.1948726Z         "doc": {
2026-06-10T07:08:01.1949111Z           "complete": false,
2026-06-10T07:08:01.1949449Z           "evidence": []
2026-06-10T07:08:01.1949727Z         },
2026-06-10T07:08:01.1950011Z         "impl": {
2026-06-10T07:08:01.1950304Z           "complete": true,
2026-06-10T07:08:01.1950595Z           "evidence": [
2026-06-10T07:08:01.1950876Z             {
2026-06-10T07:08:01.1951311Z               "path": "installer/install.ps1",
2026-06-10T07:08:01.1951607Z               "line": 100
2026-06-10T07:08:01.1951883Z             },
2026-06-10T07:08:01.1952164Z             {
2026-06-10T07:08:01.1952508Z               "path": "installer/install.ps1",
2026-06-10T07:08:01.1952792Z               "line": 111
2026-06-10T07:08:01.1953080Z             },
2026-06-10T07:08:01.1953358Z             {
2026-06-10T07:08:01.1953686Z               "path": "installer/install.sh",
2026-06-10T07:08:01.1953978Z               "line": 79
2026-06-10T07:08:01.1954264Z             }
2026-06-10T07:08:01.1954545Z           ]
2026-06-10T07:08:01.1954827Z         },
2026-06-10T07:08:01.1955151Z         "int": {
2026-06-10T07:08:01.1955435Z           "complete": true,
2026-06-10T07:08:01.1955724Z           "evidence": [
2026-06-10T07:08:01.1956000Z             {
2026-06-10T07:08:01.1956383Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-10T07:08:01.1956683Z               "line": 167
2026-06-10T07:08:01.1956964Z             }
2026-06-10T07:08:01.1957244Z           ]
2026-06-10T07:08:01.1957522Z         },
2026-06-10T07:08:01.1957802Z         "unit": {
2026-06-10T07:08:01.1958099Z           "complete": false,
2026-06-10T07:08:01.1958399Z           "evidence": []
2026-06-10T07:08:01.1958671Z         }
2026-06-10T07:08:01.1959042Z       }
2026-06-10T07:08:01.1959324Z     },
2026-06-10T07:08:01.1959615Z     {
2026-06-10T07:08:01.1959920Z       "id": "REQ-INSTALL-4",
2026-06-10T07:08:01.1961942Z       "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-10T07:08:01.1962261Z       "requiredStages": [
2026-06-10T07:08:01.1962548Z         "impl",
2026-06-10T07:08:01.1962821Z         "unit"
2026-06-10T07:08:01.1963097Z       ],
2026-06-10T07:08:01.1963381Z       "stages": {
2026-06-10T07:08:01.1963669Z         "doc": {
2026-06-10T07:08:01.1963969Z           "complete": false,
2026-06-10T07:08:01.1964275Z           "evidence": []
2026-06-10T07:08:01.1964556Z         },
2026-06-10T07:08:01.1964838Z         "impl": {
2026-06-10T07:08:01.1965138Z           "complete": true,
2026-06-10T07:08:01.1965425Z           "evidence": [
2026-06-10T07:08:01.1965711Z             {
2026-06-10T07:08:01.1966132Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.1966442Z               "line": 154
2026-06-10T07:08:01.1966723Z             },
2026-06-10T07:08:01.1967000Z             {
2026-06-10T07:08:01.1967390Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1967682Z               "line": 29
2026-06-10T07:08:01.1967963Z             },
2026-06-10T07:08:01.1968245Z             {
2026-06-10T07:08:01.1968631Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1968935Z               "line": 117
2026-06-10T07:08:01.1969302Z             },
2026-06-10T07:08:01.1969597Z             {
2026-06-10T07:08:01.1969984Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1970278Z               "line": 161
2026-06-10T07:08:01.1970570Z             },
2026-06-10T07:08:01.1970847Z             {
2026-06-10T07:08:01.1971234Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1971521Z               "line": 191
2026-06-10T07:08:01.1971806Z             },
2026-06-10T07:08:01.1972084Z             {
2026-06-10T07:08:01.1972464Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1972756Z               "line": 223
2026-06-10T07:08:01.1973146Z             },
2026-06-10T07:08:01.1973432Z             {
2026-06-10T07:08:01.1973756Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1974050Z               "line": 4148
2026-06-10T07:08:01.1974325Z             }
2026-06-10T07:08:01.1974606Z           ]
2026-06-10T07:08:01.1974882Z         },
2026-06-10T07:08:01.1975417Z         "int": {
2026-06-10T07:08:01.1975817Z           "complete": false,
2026-06-10T07:08:01.1976104Z           "evidence": []
2026-06-10T07:08:01.1976375Z         },
2026-06-10T07:08:01.1976650Z         "unit": {
2026-06-10T07:08:01.1976950Z           "complete": true,
2026-06-10T07:08:01.1977241Z           "evidence": [
2026-06-10T07:08:01.1977513Z             {
2026-06-10T07:08:01.1977936Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.1978227Z               "line": 335
2026-06-10T07:08:01.1978504Z             },
2026-06-10T07:08:01.1978777Z             {
2026-06-10T07:08:01.1979251Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1979552Z               "line": 269
2026-06-10T07:08:01.1979824Z             },
2026-06-10T07:08:01.1980101Z             {
2026-06-10T07:08:01.1980481Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1980773Z               "line": 310
2026-06-10T07:08:01.1981045Z             },
2026-06-10T07:08:01.1981321Z             {
2026-06-10T07:08:01.1981694Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-10T07:08:01.1981982Z               "line": 330
2026-06-10T07:08:01.1982271Z             },
2026-06-10T07:08:01.1982542Z             {
2026-06-10T07:08:01.1982881Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.1983167Z               "line": 5738
2026-06-10T07:08:01.1983448Z             }
2026-06-10T07:08:01.1983724Z           ]
2026-06-10T07:08:01.1984029Z         }
2026-06-10T07:08:01.1984312Z       }
2026-06-10T07:08:01.1984582Z     },
2026-06-10T07:08:01.1984856Z     {
2026-06-10T07:08:01.1985162Z       "id": "REQ-INSTALL-5",
2026-06-10T07:08:01.1986716Z       "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-10T07:08:01.1987024Z       "requiredStages": [
2026-06-10T07:08:01.1987299Z         "impl",
2026-06-10T07:08:01.1987585Z         "int"
2026-06-10T07:08:01.1987858Z       ],
2026-06-10T07:08:01.1988144Z       "stages": {
2026-06-10T07:08:01.1988773Z         "doc": {
2026-06-10T07:08:01.1989322Z           "complete": false,
2026-06-10T07:08:01.1989613Z           "evidence": []
2026-06-10T07:08:01.1989887Z         },
2026-06-10T07:08:01.1990173Z         "impl": {
2026-06-10T07:08:01.1990474Z           "complete": true,
2026-06-10T07:08:01.1990766Z           "evidence": [
2026-06-10T07:08:01.1991046Z             {
2026-06-10T07:08:01.1991389Z               "path": "installer/install.ps1",
2026-06-10T07:08:01.1991681Z               "line": 5
2026-06-10T07:08:01.1991967Z             },
2026-06-10T07:08:01.1992246Z             {
2026-06-10T07:08:01.1992578Z               "path": "installer/install.sh",
2026-06-10T07:08:01.1992869Z               "line": 6
2026-06-10T07:08:01.1993155Z             }
2026-06-10T07:08:01.1993436Z           ]
2026-06-10T07:08:01.1993712Z         },
2026-06-10T07:08:01.1993999Z         "int": {
2026-06-10T07:08:01.1994304Z           "complete": true,
2026-06-10T07:08:01.1994590Z           "evidence": [
2026-06-10T07:08:01.1994868Z             {
2026-06-10T07:08:01.1995250Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-10T07:08:01.1995542Z               "line": 22
2026-06-10T07:08:01.1995866Z             }
2026-06-10T07:08:01.1996236Z           ]
2026-06-10T07:08:01.1996556Z         },
2026-06-10T07:08:01.1996871Z         "unit": {
2026-06-10T07:08:01.1997166Z           "complete": false,
2026-06-10T07:08:01.1997467Z           "evidence": []
2026-06-10T07:08:01.1997746Z         }
2026-06-10T07:08:01.1998160Z       }
2026-06-10T07:08:01.1998432Z     },
2026-06-10T07:08:01.1998708Z     {
2026-06-10T07:08:01.1999090Z       "id": "REQ-INSTALL-6",
2026-06-10T07:08:01.2002697Z       "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-10T07:08:01.2003014Z       "requiredStages": [
2026-06-10T07:08:01.2003286Z         "impl",
2026-06-10T07:08:01.2003563Z         "unit"
2026-06-10T07:08:01.2003830Z       ],
2026-06-10T07:08:01.2004112Z       "stages": {
2026-06-10T07:08:01.2004379Z         "doc": {
2026-06-10T07:08:01.2004684Z           "complete": false,
2026-06-10T07:08:01.2004974Z           "evidence": []
2026-06-10T07:08:01.2005255Z         },
2026-06-10T07:08:01.2005564Z         "impl": {
2026-06-10T07:08:01.2005853Z           "complete": true,
2026-06-10T07:08:01.2006144Z           "evidence": [
2026-06-10T07:08:01.2006416Z             {
2026-06-10T07:08:01.2006783Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.2007064Z               "line": 59
2026-06-10T07:08:01.2007332Z             },
2026-06-10T07:08:01.2007628Z             {
2026-06-10T07:08:01.2007999Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.2008279Z               "line": 559
2026-06-10T07:08:01.2008558Z             },
2026-06-10T07:08:01.2008825Z             {
2026-06-10T07:08:01.2009302Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.2009583Z               "line": 191
2026-06-10T07:08:01.2009856Z             },
2026-06-10T07:08:01.2010122Z             {
2026-06-10T07:08:01.2010514Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.2010805Z               "line": 276
2026-06-10T07:08:01.2011088Z             },
2026-06-10T07:08:01.2011365Z             {
2026-06-10T07:08:01.2011699Z               "path": "crates/spt/src/main.rs",
2026-06-10T07:08:01.2011989Z               "line": 40
2026-06-10T07:08:01.2012261Z             },
2026-06-10T07:08:01.2012548Z             {
2026-06-10T07:08:01.2012886Z               "path": "installer/install.sh",
2026-06-10T07:08:01.2013172Z               "line": 104
2026-06-10T07:08:01.2013456Z             }
2026-06-10T07:08:01.2013733Z           ]
2026-06-10T07:08:01.2014018Z         },
2026-06-10T07:08:01.2014290Z         "int": {
2026-06-10T07:08:01.2014590Z           "complete": false,
2026-06-10T07:08:01.2014881Z           "evidence": []
2026-06-10T07:08:01.2015152Z         },
2026-06-10T07:08:01.2015434Z         "unit": {
2026-06-10T07:08:01.2015720Z           "complete": true,
2026-06-10T07:08:01.2016011Z           "evidence": [
2026-06-10T07:08:01.2016272Z             {
2026-06-10T07:08:01.2016662Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-10T07:08:01.2016956Z               "line": 866
2026-06-10T07:08:01.2017224Z             }
2026-06-10T07:08:01.2017525Z           ]
2026-06-10T07:08:01.2017806Z         }
2026-06-10T07:08:01.2018091Z       }
2026-06-10T07:08:01.2018358Z     },
2026-06-10T07:08:01.2018643Z     {
2026-06-10T07:08:01.2019022Z       "id": "REQ-INSTALL-7",
2026-06-10T07:08:01.2022220Z       "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-10T07:08:01.2022535Z       "requiredStages": [
2026-06-10T07:08:01.2022817Z         "impl"
2026-06-10T07:08:01.2023098Z       ],
2026-06-10T07:08:01.2023394Z       "stages": {
2026-06-10T07:08:01.2023676Z         "doc": {
2026-06-10T07:08:01.2023979Z           "complete": false,
2026-06-10T07:08:01.2024392Z           "evidence": []
2026-06-10T07:08:01.2024674Z         },
2026-06-10T07:08:01.2024955Z         "impl": {
2026-06-10T07:08:01.2025265Z           "complete": true,
2026-06-10T07:08:01.2025556Z           "evidence": [
2026-06-10T07:08:01.2025829Z             {
2026-06-10T07:08:01.2026318Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2026670Z               "line": 2812
2026-06-10T07:08:01.2026968Z             },
2026-06-10T07:08:01.2027236Z             {
2026-06-10T07:08:01.2027574Z               "path": "installer/install.ps1",
2026-06-10T07:08:01.2027870Z               "line": 157
2026-06-10T07:08:01.2028142Z             }
2026-06-10T07:08:01.2028428Z           ]
2026-06-10T07:08:01.2028705Z         },
2026-06-10T07:08:01.2029063Z         "int": {
2026-06-10T07:08:01.2029365Z           "complete": false,
2026-06-10T07:08:01.2029659Z           "evidence": []
2026-06-10T07:08:01.2029935Z         },
2026-06-10T07:08:01.2030216Z         "unit": {
2026-06-10T07:08:01.2030536Z           "complete": false,
2026-06-10T07:08:01.2030812Z           "evidence": []
2026-06-10T07:08:01.2031095Z         }
2026-06-10T07:08:01.2031375Z       }
2026-06-10T07:08:01.2031648Z     },
2026-06-10T07:08:01.2031925Z     {
2026-06-10T07:08:01.2032223Z       "id": "REQ-INSTALL-8",
2026-06-10T07:08:01.2035563Z       "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-10T07:08:01.2035863Z       "requiredStages": [
2026-06-10T07:08:01.2036144Z         "impl"
2026-06-10T07:08:01.2036445Z       ],
2026-06-10T07:08:01.2036727Z       "stages": {
2026-06-10T07:08:01.2037003Z         "doc": {
2026-06-10T07:08:01.2037301Z           "complete": false,
2026-06-10T07:08:01.2037604Z           "evidence": []
2026-06-10T07:08:01.2037871Z         },
2026-06-10T07:08:01.2038167Z         "impl": {
2026-06-10T07:08:01.2038473Z           "complete": true,
2026-06-10T07:08:01.2038753Z           "evidence": [
2026-06-10T07:08:01.2039106Z             {
2026-06-10T07:08:01.2039460Z               "path": "installer/install.ps1",
2026-06-10T07:08:01.2039754Z               "line": 184
2026-06-10T07:08:01.2040029Z             },
2026-06-10T07:08:01.2040310Z             {
2026-06-10T07:08:01.2040648Z               "path": "installer/install.sh",
2026-06-10T07:08:01.2040940Z               "line": 121
2026-06-10T07:08:01.2041216Z             }
2026-06-10T07:08:01.2041493Z           ]
2026-06-10T07:08:01.2041773Z         },
2026-06-10T07:08:01.2042050Z         "int": {
2026-06-10T07:08:01.2042355Z           "complete": false,
2026-06-10T07:08:01.2042693Z           "evidence": []
2026-06-10T07:08:01.2042969Z         },
2026-06-10T07:08:01.2043255Z         "unit": {
2026-06-10T07:08:01.2043552Z           "complete": false,
2026-06-10T07:08:01.2043847Z           "evidence": []
2026-06-10T07:08:01.2044124Z         }
2026-06-10T07:08:01.2044406Z       }
2026-06-10T07:08:01.2044687Z     },
2026-06-10T07:08:01.2044961Z     {
2026-06-10T07:08:01.2045268Z       "id": "REQ-MANIFEST-1",
2026-06-10T07:08:01.2045850Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-10T07:08:01.2046160Z       "requiredStages": [
2026-06-10T07:08:01.2046437Z         "doc",
2026-06-10T07:08:01.2046718Z         "impl",
2026-06-10T07:08:01.2047001Z         "unit"
2026-06-10T07:08:01.2047278Z       ],
2026-06-10T07:08:01.2047563Z       "stages": {
2026-06-10T07:08:01.2047833Z         "doc": {
2026-06-10T07:08:01.2048126Z           "complete": true,
2026-06-10T07:08:01.2048417Z           "evidence": [
2026-06-10T07:08:01.2048704Z             {
2026-06-10T07:08:01.2049098Z               "path": "docs/MANIFEST.md",
2026-06-10T07:08:01.2049676Z               "line": 19
2026-06-10T07:08:01.2049957Z             }
2026-06-10T07:08:01.2050230Z           ]
2026-06-10T07:08:01.2050509Z         },
2026-06-10T07:08:01.2050798Z         "impl": {
2026-06-10T07:08:01.2051104Z           "complete": true,
2026-06-10T07:08:01.2051404Z           "evidence": [
2026-06-10T07:08:01.2051685Z             {
2026-06-10T07:08:01.2052172Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2052458Z               "line": 18
2026-06-10T07:08:01.2052726Z             }
2026-06-10T07:08:01.2055583Z           ]
2026-06-10T07:08:01.2055886Z         },
2026-06-10T07:08:01.2056167Z         "int": {
2026-06-10T07:08:01.2056472Z           "complete": false,
2026-06-10T07:08:01.2056763Z           "evidence": []
2026-06-10T07:08:01.2057035Z         },
2026-06-10T07:08:01.2057312Z         "unit": {
2026-06-10T07:08:01.2057607Z           "complete": true,
2026-06-10T07:08:01.2057894Z           "evidence": [
2026-06-10T07:08:01.2058167Z             {
2026-06-10T07:08:01.2058596Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2058883Z               "line": 746
2026-06-10T07:08:01.2059278Z             },
2026-06-10T07:08:01.2059583Z             {
2026-06-10T07:08:01.2059988Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2060279Z               "line": 860
2026-06-10T07:08:01.2060570Z             },
2026-06-10T07:08:01.2060846Z             {
2026-06-10T07:08:01.2061238Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2061525Z               "line": 872
2026-06-10T07:08:01.2061812Z             },
2026-06-10T07:08:01.2062088Z             {
2026-06-10T07:08:01.2062484Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2062775Z               "line": 883
2026-06-10T07:08:01.2063065Z             },
2026-06-10T07:08:01.2063333Z             {
2026-06-10T07:08:01.2063718Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2064047Z               "line": 900
2026-06-10T07:08:01.2064328Z             },
2026-06-10T07:08:01.2064606Z             {
2026-06-10T07:08:01.2064995Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2065286Z               "line": 914
2026-06-10T07:08:01.2065569Z             },
2026-06-10T07:08:01.2065841Z             {
2026-06-10T07:08:01.2066252Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2066542Z               "line": 929
2026-06-10T07:08:01.2066819Z             },
2026-06-10T07:08:01.2067100Z             {
2026-06-10T07:08:01.2067486Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2067783Z               "line": 944
2026-06-10T07:08:01.2068045Z             },
2026-06-10T07:08:01.2068325Z             {
2026-06-10T07:08:01.2068698Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2069091Z               "line": 959
2026-06-10T07:08:01.2069376Z             },
2026-06-10T07:08:01.2069657Z             {
2026-06-10T07:08:01.2070053Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2070340Z               "line": 970
2026-06-10T07:08:01.2070621Z             }
2026-06-10T07:08:01.2070892Z           ]
2026-06-10T07:08:01.2071183Z         }
2026-06-10T07:08:01.2071458Z       }
2026-06-10T07:08:01.2071728Z     },
2026-06-10T07:08:01.2072010Z     {
2026-06-10T07:08:01.2072310Z       "id": "REQ-MESH-1",
2026-06-10T07:08:01.2078347Z       "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-10T07:08:01.2078818Z       "requiredStages": [
2026-06-10T07:08:01.2079181Z         "impl",
2026-06-10T07:08:01.2079471Z         "unit",
2026-06-10T07:08:01.2079745Z         "int"
2026-06-10T07:08:01.2080145Z       ],
2026-06-10T07:08:01.2080436Z       "stages": {
2026-06-10T07:08:01.2080717Z         "doc": {
2026-06-10T07:08:01.2081023Z           "complete": false,
2026-06-10T07:08:01.2081314Z           "evidence": []
2026-06-10T07:08:01.2081595Z         },
2026-06-10T07:08:01.2081873Z         "impl": {
2026-06-10T07:08:01.2082176Z           "complete": true,
2026-06-10T07:08:01.2082469Z           "evidence": [
2026-06-10T07:08:01.2082746Z             {
2026-06-10T07:08:01.2083132Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:01.2083419Z               "line": 680
2026-06-10T07:08:01.2083704Z             },
2026-06-10T07:08:01.2083985Z             {
2026-06-10T07:08:01.2084382Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2084673Z               "line": 38
2026-06-10T07:08:01.2084976Z             },
2026-06-10T07:08:01.2085257Z             {
2026-06-10T07:08:01.2085930Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2086235Z               "line": 161
2026-06-10T07:08:01.2086507Z             },
2026-06-10T07:08:01.2086768Z             {
2026-06-10T07:08:01.2087154Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2087438Z               "line": 206
2026-06-10T07:08:01.2087720Z             },
2026-06-10T07:08:01.2087996Z             {
2026-06-10T07:08:01.2088378Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2088683Z               "line": 57
2026-06-10T07:08:01.2089054Z             },
2026-06-10T07:08:01.2089335Z             {
2026-06-10T07:08:01.2089751Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2090059Z               "line": 24
2026-06-10T07:08:01.2090334Z             },
2026-06-10T07:08:01.2090606Z             {
2026-06-10T07:08:01.2091020Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2091301Z               "line": 142
2026-06-10T07:08:01.2091578Z             },
2026-06-10T07:08:01.2091859Z             {
2026-06-10T07:08:01.2092274Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2092560Z               "line": 162
2026-06-10T07:08:01.2092839Z             }
2026-06-10T07:08:01.2093121Z           ]
2026-06-10T07:08:01.2093392Z         },
2026-06-10T07:08:01.2093674Z         "int": {
2026-06-10T07:08:01.2093964Z           "complete": true,
2026-06-10T07:08:01.2094254Z           "evidence": [
2026-06-10T07:08:01.2094536Z             {
2026-06-10T07:08:01.2094976Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T07:08:01.2095257Z               "line": 67
2026-06-10T07:08:01.2095560Z             },
2026-06-10T07:08:01.2095836Z             {
2026-06-10T07:08:01.2096238Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T07:08:01.2096523Z               "line": 93
2026-06-10T07:08:01.2096795Z             },
2026-06-10T07:08:01.2097081Z             {
2026-06-10T07:08:01.2097477Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T07:08:01.2097771Z               "line": 117
2026-06-10T07:08:01.2098046Z             },
2026-06-10T07:08:01.2098322Z             {
2026-06-10T07:08:01.2098722Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-10T07:08:01.2099076Z               "line": 134
2026-06-10T07:08:01.2099347Z             }
2026-06-10T07:08:01.2099638Z           ]
2026-06-10T07:08:01.2099939Z         },
2026-06-10T07:08:01.2100229Z         "unit": {
2026-06-10T07:08:01.2100534Z           "complete": true,
2026-06-10T07:08:01.2100814Z           "evidence": [
2026-06-10T07:08:01.2101208Z             {
2026-06-10T07:08:01.2101599Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2101895Z               "line": 427
2026-06-10T07:08:01.2102167Z             },
2026-06-10T07:08:01.2102448Z             {
2026-06-10T07:08:01.2102858Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2103239Z               "line": 376
2026-06-10T07:08:01.2103526Z             },
2026-06-10T07:08:01.2103808Z             {
2026-06-10T07:08:01.2104224Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2104510Z               "line": 412
2026-06-10T07:08:01.2104790Z             },
2026-06-10T07:08:01.2105077Z             {
2026-06-10T07:08:01.2105483Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2105789Z               "line": 427
2026-06-10T07:08:01.2106067Z             },
2026-06-10T07:08:01.2106349Z             {
2026-06-10T07:08:01.2106754Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2107060Z               "line": 438
2026-06-10T07:08:01.2107336Z             },
2026-06-10T07:08:01.2107617Z             {
2026-06-10T07:08:01.2108033Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2108322Z               "line": 449
2026-06-10T07:08:01.2108606Z             },
2026-06-10T07:08:01.2108887Z             {
2026-06-10T07:08:01.2109384Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2109675Z               "line": 460
2026-06-10T07:08:01.2109950Z             },
2026-06-10T07:08:01.2110227Z             {
2026-06-10T07:08:01.2110629Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2110919Z               "line": 496
2026-06-10T07:08:01.2111194Z             },
2026-06-10T07:08:01.2111463Z             {
2026-06-10T07:08:01.2111868Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2112150Z               "line": 519
2026-06-10T07:08:01.2112431Z             },
2026-06-10T07:08:01.2112699Z             {
2026-06-10T07:08:01.2113113Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2113399Z               "line": 546
2026-06-10T07:08:01.2113675Z             }
2026-06-10T07:08:01.2113954Z           ]
2026-06-10T07:08:01.2114231Z         }
2026-06-10T07:08:01.2114517Z       }
2026-06-10T07:08:01.2114794Z     },
2026-06-10T07:08:01.2115075Z     {
2026-06-10T07:08:01.2115370Z       "id": "REQ-MESH-2",
2026-06-10T07:08:01.2122882Z       "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-10T07:08:01.2123216Z       "requiredStages": [
2026-06-10T07:08:01.2123493Z         "impl",
2026-06-10T07:08:01.2123779Z         "unit",
2026-06-10T07:08:01.2124061Z         "int"
2026-06-10T07:08:01.2124334Z       ],
2026-06-10T07:08:01.2124614Z       "stages": {
2026-06-10T07:08:01.2124928Z         "doc": {
2026-06-10T07:08:01.2125349Z           "complete": false,
2026-06-10T07:08:01.2125683Z           "evidence": []
2026-06-10T07:08:01.2125974Z         },
2026-06-10T07:08:01.2126254Z         "impl": {
2026-06-10T07:08:01.2126541Z           "complete": true,
2026-06-10T07:08:01.2127004Z           "evidence": [
2026-06-10T07:08:01.2127274Z             {
2026-06-10T07:08:01.2127656Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:01.2127947Z               "line": 569
2026-06-10T07:08:01.2128228Z             },
2026-06-10T07:08:01.2128499Z             {
2026-06-10T07:08:01.2129052Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2129352Z               "line": 118
2026-06-10T07:08:01.2129627Z             },
2026-06-10T07:08:01.2129899Z             {
2026-06-10T07:08:01.2130279Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2130594Z               "line": 347
2026-06-10T07:08:01.2130876Z             },
2026-06-10T07:08:01.2131143Z             {
2026-06-10T07:08:01.2131524Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2131806Z               "line": 389
2026-06-10T07:08:01.2132083Z             },
2026-06-10T07:08:01.2132357Z             {
2026-06-10T07:08:01.2132736Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2133037Z               "line": 403
2026-06-10T07:08:01.2133303Z             },
2026-06-10T07:08:01.2133579Z             {
2026-06-10T07:08:01.2133957Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2134243Z               "line": 492
2026-06-10T07:08:01.2134515Z             },
2026-06-10T07:08:01.2134800Z             {
2026-06-10T07:08:01.2135546Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2135846Z               "line": 507
2026-06-10T07:08:01.2136122Z             },
2026-06-10T07:08:01.2136400Z             {
2026-06-10T07:08:01.2136839Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2137144Z               "line": 534
2026-06-10T07:08:01.2137420Z             },
2026-06-10T07:08:01.2137700Z             {
2026-06-10T07:08:01.2138081Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2138372Z               "line": 207
2026-06-10T07:08:01.2138644Z             },
2026-06-10T07:08:01.2138916Z             {
2026-06-10T07:08:01.2139394Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2139684Z               "line": 755
2026-06-10T07:08:01.2139964Z             },
2026-06-10T07:08:01.2140286Z             {
2026-06-10T07:08:01.2140691Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2140977Z               "line": 816
2026-06-10T07:08:01.2141254Z             },
2026-06-10T07:08:01.2141535Z             {
2026-06-10T07:08:01.2141926Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2142217Z               "line": 869
2026-06-10T07:08:01.2142489Z             },
2026-06-10T07:08:01.2142775Z             {
2026-06-10T07:08:01.2143158Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2143449Z               "line": 891
2026-06-10T07:08:01.2143726Z             },
2026-06-10T07:08:01.2144003Z             {
2026-06-10T07:08:01.2144384Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.2144670Z               "line": 112
2026-06-10T07:08:01.2144952Z             },
2026-06-10T07:08:01.2145224Z             {
2026-06-10T07:08:01.2145598Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2145893Z               "line": 44
2026-06-10T07:08:01.2146174Z             },
2026-06-10T07:08:01.2146455Z             {
2026-06-10T07:08:01.2146808Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2147104Z               "line": 184
2026-06-10T07:08:01.2147379Z             },
2026-06-10T07:08:01.2147661Z             {
2026-06-10T07:08:01.2148120Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2148456Z               "line": 211
2026-06-10T07:08:01.2148738Z             },
2026-06-10T07:08:01.2149109Z             {
2026-06-10T07:08:01.2149476Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2149767Z               "line": 251
2026-06-10T07:08:01.2150172Z             },
2026-06-10T07:08:01.2150448Z             {
2026-06-10T07:08:01.2150803Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2151099Z               "line": 275
2026-06-10T07:08:01.2151376Z             },
2026-06-10T07:08:01.2151653Z             {
2026-06-10T07:08:01.2152114Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2152405Z               "line": 289
2026-06-10T07:08:01.2152715Z             },
2026-06-10T07:08:01.2152991Z             {
2026-06-10T07:08:01.2153373Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2153656Z               "line": 300
2026-06-10T07:08:01.2153938Z             },
2026-06-10T07:08:01.2154215Z             {
2026-06-10T07:08:01.2154586Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2154872Z               "line": 313
2026-06-10T07:08:01.2155145Z             }
2026-06-10T07:08:01.2155427Z           ]
2026-06-10T07:08:01.2155712Z         },
2026-06-10T07:08:01.2155996Z         "int": {
2026-06-10T07:08:01.2156294Z           "complete": true,
2026-06-10T07:08:01.2156580Z           "evidence": [
2026-06-10T07:08:01.2156862Z             {
2026-06-10T07:08:01.2157262Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-10T07:08:01.2157548Z               "line": 116
2026-06-10T07:08:01.2157835Z             },
2026-06-10T07:08:01.2158120Z             {
2026-06-10T07:08:01.2158521Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-10T07:08:01.2158806Z               "line": 181
2026-06-10T07:08:01.2159168Z             }
2026-06-10T07:08:01.2159445Z           ]
2026-06-10T07:08:01.2159728Z         },
2026-06-10T07:08:01.2160003Z         "unit": {
2026-06-10T07:08:01.2160304Z           "complete": true,
2026-06-10T07:08:01.2160600Z           "evidence": [
2026-06-10T07:08:01.2160877Z             {
2026-06-10T07:08:01.2161265Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2161545Z               "line": 999
2026-06-10T07:08:01.2161821Z             },
2026-06-10T07:08:01.2162087Z             {
2026-06-10T07:08:01.2162485Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2162775Z               "line": 1016
2026-06-10T07:08:01.2163037Z             },
2026-06-10T07:08:01.2163318Z             {
2026-06-10T07:08:01.2163701Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2163994Z               "line": 1024
2026-06-10T07:08:01.2164273Z             },
2026-06-10T07:08:01.2164550Z             {
2026-06-10T07:08:01.2164936Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2165222Z               "line": 1048
2026-06-10T07:08:01.2165499Z             },
2026-06-10T07:08:01.2165771Z             {
2026-06-10T07:08:01.2166166Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2166447Z               "line": 1499
2026-06-10T07:08:01.2166736Z             },
2026-06-10T07:08:01.2167013Z             {
2026-06-10T07:08:01.2167370Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2167670Z               "line": 347
2026-06-10T07:08:01.2167947Z             },
2026-06-10T07:08:01.2168229Z             {
2026-06-10T07:08:01.2168601Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2168892Z               "line": 370
2026-06-10T07:08:01.2169254Z             },
2026-06-10T07:08:01.2169524Z             {
2026-06-10T07:08:01.2169887Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2170168Z               "line": 407
2026-06-10T07:08:01.2170454Z             },
2026-06-10T07:08:01.2170730Z             {
2026-06-10T07:08:01.2171089Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2171379Z               "line": 431
2026-06-10T07:08:01.2171654Z             },
2026-06-10T07:08:01.2171933Z             {
2026-06-10T07:08:01.2172295Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2172696Z               "line": 483
2026-06-10T07:08:01.2172977Z             },
2026-06-10T07:08:01.2173253Z             {
2026-06-10T07:08:01.2173616Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2173907Z               "line": 499
2026-06-10T07:08:01.2174188Z             },
2026-06-10T07:08:01.2174563Z             {
2026-06-10T07:08:01.2174915Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2175205Z               "line": 514
2026-06-10T07:08:01.2175467Z             },
2026-06-10T07:08:01.2175754Z             {
2026-06-10T07:08:01.2176111Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2176402Z               "line": 531
2026-06-10T07:08:01.2176669Z             }
2026-06-10T07:08:01.2176951Z           ]
2026-06-10T07:08:01.2177236Z         }
2026-06-10T07:08:01.2177510Z       }
2026-06-10T07:08:01.2177772Z     },
2026-06-10T07:08:01.2178039Z     {
2026-06-10T07:08:01.2178330Z       "id": "REQ-MESH-3",
2026-06-10T07:08:01.2183232Z       "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-10T07:08:01.2183542Z       "requiredStages": [
2026-06-10T07:08:01.2183828Z         "impl",
2026-06-10T07:08:01.2184104Z         "unit",
2026-06-10T07:08:01.2184386Z         "int"
2026-06-10T07:08:01.2184667Z       ],
2026-06-10T07:08:01.2184950Z       "stages": {
2026-06-10T07:08:01.2185234Z         "doc": {
2026-06-10T07:08:01.2185532Z           "complete": false,
2026-06-10T07:08:01.2185828Z           "evidence": []
2026-06-10T07:08:01.2186133Z         },
2026-06-10T07:08:01.2186419Z         "impl": {
2026-06-10T07:08:01.2186724Z           "complete": true,
2026-06-10T07:08:01.2187015Z           "evidence": [
2026-06-10T07:08:01.2187291Z             {
2026-06-10T07:08:01.2187676Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.2188007Z               "line": 410
2026-06-10T07:08:01.2188285Z             },
2026-06-10T07:08:01.2188561Z             {
2026-06-10T07:08:01.2189020Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.2189315Z               "line": 603
2026-06-10T07:08:01.2189596Z             }
2026-06-10T07:08:01.2189868Z           ]
2026-06-10T07:08:01.2190144Z         },
2026-06-10T07:08:01.2190425Z         "int": {
2026-06-10T07:08:01.2190726Z           "complete": true,
2026-06-10T07:08:01.2191017Z           "evidence": [
2026-06-10T07:08:01.2191293Z             {
2026-06-10T07:08:01.2191670Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-10T07:08:01.2191965Z               "line": 373
2026-06-10T07:08:01.2192242Z             },
2026-06-10T07:08:01.2192523Z             {
2026-06-10T07:08:01.2192898Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-10T07:08:01.2193187Z               "line": 436
2026-06-10T07:08:01.2193463Z             }
2026-06-10T07:08:01.2193749Z           ]
2026-06-10T07:08:01.2194026Z         },
2026-06-10T07:08:01.2194308Z         "unit": {
2026-06-10T07:08:01.2194608Z           "complete": true,
2026-06-10T07:08:01.2194899Z           "evidence": [
2026-06-10T07:08:01.2195176Z             {
2026-06-10T07:08:01.2195556Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.2195855Z               "line": 881
2026-06-10T07:08:01.2196131Z             }
2026-06-10T07:08:01.2196408Z           ]
2026-06-10T07:08:01.2196674Z         }
2026-06-10T07:08:01.2196950Z       }
2026-06-10T07:08:01.2197227Z     },
2026-06-10T07:08:01.2197498Z     {
2026-06-10T07:08:01.2197909Z       "id": "REQ-MESH-4",
2026-06-10T07:08:01.2204304Z       "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-10T07:08:01.2204633Z       "requiredStages": [
2026-06-10T07:08:01.2204929Z         "impl",
2026-06-10T07:08:01.2205211Z         "unit",
2026-06-10T07:08:01.2205492Z         "int"
2026-06-10T07:08:01.2205792Z       ],
2026-06-10T07:08:01.2206079Z       "stages": {
2026-06-10T07:08:01.2206359Z         "doc": {
2026-06-10T07:08:01.2206652Z           "complete": false,
2026-06-10T07:08:01.2206953Z           "evidence": []
2026-06-10T07:08:01.2207229Z         },
2026-06-10T07:08:01.2207520Z         "impl": {
2026-06-10T07:08:01.2207815Z           "complete": true,
2026-06-10T07:08:01.2208140Z           "evidence": [
2026-06-10T07:08:01.2208416Z             {
2026-06-10T07:08:01.2208806Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.2209190Z               "line": 187
2026-06-10T07:08:01.2209472Z             },
2026-06-10T07:08:01.2209753Z             {
2026-06-10T07:08:01.2210145Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2210445Z               "line": 68
2026-06-10T07:08:01.2210730Z             },
2026-06-10T07:08:01.2211002Z             {
2026-06-10T07:08:01.2211399Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2211687Z               "line": 111
2026-06-10T07:08:01.2211974Z             },
2026-06-10T07:08:01.2212250Z             {
2026-06-10T07:08:01.2212641Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2212942Z               "line": 462
2026-06-10T07:08:01.2213218Z             },
2026-06-10T07:08:01.2213504Z             {
2026-06-10T07:08:01.2213904Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2214202Z               "line": 711
2026-06-10T07:08:01.2214479Z             },
2026-06-10T07:08:01.2214760Z             {
2026-06-10T07:08:01.2215156Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2215452Z               "line": 725
2026-06-10T07:08:01.2215738Z             },
2026-06-10T07:08:01.2216029Z             {
2026-06-10T07:08:01.2216385Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.2216681Z               "line": 122
2026-06-10T07:08:01.2216956Z             },
2026-06-10T07:08:01.2217237Z             {
2026-06-10T07:08:01.2217618Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T07:08:01.2217914Z               "line": 26
2026-06-10T07:08:01.2218191Z             },
2026-06-10T07:08:01.2218472Z             {
2026-06-10T07:08:01.2218849Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T07:08:01.2219220Z               "line": 97
2026-06-10T07:08:01.2219505Z             },
2026-06-10T07:08:01.2219779Z             {
2026-06-10T07:08:01.2220161Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T07:08:01.2220457Z               "line": 119
2026-06-10T07:08:01.2220734Z             },
2026-06-10T07:08:01.2221024Z             {
2026-06-10T07:08:01.2221387Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.2221683Z               "line": 82
2026-06-10T07:08:01.2221950Z             },
2026-06-10T07:08:01.2222214Z             {
2026-06-10T07:08:01.2222572Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.2222979Z               "line": 111
2026-06-10T07:08:01.2223264Z             },
2026-06-10T07:08:01.2223535Z             {
2026-06-10T07:08:01.2223889Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.2224174Z               "line": 232
2026-06-10T07:08:01.2224450Z             },
2026-06-10T07:08:01.2224720Z             {
2026-06-10T07:08:01.2225167Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.2225458Z               "line": 245
2026-06-10T07:08:01.2225730Z             },
2026-06-10T07:08:01.2225997Z             {
2026-06-10T07:08:01.2226326Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2226622Z               "line": 3544
2026-06-10T07:08:01.2226898Z             }
2026-06-10T07:08:01.2227516Z           ]
2026-06-10T07:08:01.2227826Z         },
2026-06-10T07:08:01.2228131Z         "int": {
2026-06-10T07:08:01.2228431Z           "complete": true,
2026-06-10T07:08:01.2228727Z           "evidence": [
2026-06-10T07:08:01.2229178Z             {
2026-06-10T07:08:01.2229609Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-10T07:08:01.2229893Z               "line": 98
2026-06-10T07:08:01.2230177Z             },
2026-06-10T07:08:01.2230454Z             {
2026-06-10T07:08:01.2230839Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-10T07:08:01.2231144Z               "line": 140
2026-06-10T07:08:01.2231432Z             }
2026-06-10T07:08:01.2231707Z           ]
2026-06-10T07:08:01.2231985Z         },
2026-06-10T07:08:01.2232272Z         "unit": {
2026-06-10T07:08:01.2232610Z           "complete": true,
2026-06-10T07:08:01.2232904Z           "evidence": [
2026-06-10T07:08:01.2233180Z             {
2026-06-10T07:08:01.2233567Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.2233858Z               "line": 844
2026-06-10T07:08:01.2234149Z             },
2026-06-10T07:08:01.2234430Z             {
2026-06-10T07:08:01.2234822Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2235134Z               "line": 1079
2026-06-10T07:08:01.2235408Z             },
2026-06-10T07:08:01.2235694Z             {
2026-06-10T07:08:01.2236082Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2236372Z               "line": 1109
2026-06-10T07:08:01.2236648Z             },
2026-06-10T07:08:01.2236929Z             {
2026-06-10T07:08:01.2237326Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-10T07:08:01.2237622Z               "line": 1129
2026-06-10T07:08:01.2237910Z             },
2026-06-10T07:08:01.2238185Z             {
2026-06-10T07:08:01.2238595Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-10T07:08:01.2238890Z               "line": 602
2026-06-10T07:08:01.2239248Z             },
2026-06-10T07:08:01.2239529Z             {
2026-06-10T07:08:01.2239888Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T07:08:01.2240183Z               "line": 148
2026-06-10T07:08:01.2240467Z             },
2026-06-10T07:08:01.2240742Z             {
2026-06-10T07:08:01.2241137Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T07:08:01.2241428Z               "line": 169
2026-06-10T07:08:01.2241705Z             },
2026-06-10T07:08:01.2241977Z             {
2026-06-10T07:08:01.2242358Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T07:08:01.2242650Z               "line": 181
2026-06-10T07:08:01.2242921Z             },
2026-06-10T07:08:01.2243198Z             {
2026-06-10T07:08:01.2243555Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-10T07:08:01.2243840Z               "line": 202
2026-06-10T07:08:01.2244113Z             },
2026-06-10T07:08:01.2244394Z             {
2026-06-10T07:08:01.2244776Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.2245053Z               "line": 375
2026-06-10T07:08:01.2245334Z             },
2026-06-10T07:08:01.2245594Z             {
2026-06-10T07:08:01.2245959Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.2246355Z               "line": 407
2026-06-10T07:08:01.2246627Z             },
2026-06-10T07:08:01.2246903Z             {
2026-06-10T07:08:01.2247227Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2247522Z               "line": 7002
2026-06-10T07:08:01.2247785Z             }
2026-06-10T07:08:01.2248143Z           ]
2026-06-10T07:08:01.2248418Z         }
2026-06-10T07:08:01.2248688Z       }
2026-06-10T07:08:01.2249041Z     },
2026-06-10T07:08:01.2249313Z     {
2026-06-10T07:08:01.2249608Z       "id": "REQ-MESH-5",
2026-06-10T07:08:01.2253544Z       "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-10T07:08:01.2253866Z       "requiredStages": [
2026-06-10T07:08:01.2254148Z         "impl",
2026-06-10T07:08:01.2254430Z         "unit"
2026-06-10T07:08:01.2254711Z       ],
2026-06-10T07:08:01.2254997Z       "stages": {
2026-06-10T07:08:01.2255288Z         "doc": {
2026-06-10T07:08:01.2255613Z           "complete": false,
2026-06-10T07:08:01.2255908Z           "evidence": []
2026-06-10T07:08:01.2256192Z         },
2026-06-10T07:08:01.2256471Z         "impl": {
2026-06-10T07:08:01.2256771Z           "complete": true,
2026-06-10T07:08:01.2257062Z           "evidence": [
2026-06-10T07:08:01.2257335Z             {
2026-06-10T07:08:01.2257730Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2258021Z               "line": 61
2026-06-10T07:08:01.2258302Z             },
2026-06-10T07:08:01.2258574Z             {
2026-06-10T07:08:01.2259049Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2259347Z               "line": 109
2026-06-10T07:08:01.2259629Z             },
2026-06-10T07:08:01.2259906Z             {
2026-06-10T07:08:01.2260292Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2260578Z               "line": 104
2026-06-10T07:08:01.2260859Z             },
2026-06-10T07:08:01.2261145Z             {
2026-06-10T07:08:01.2261531Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.2261824Z               "line": 105
2026-06-10T07:08:01.2262106Z             },
2026-06-10T07:08:01.2262383Z             {
2026-06-10T07:08:01.2262783Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.2263069Z               "line": 85
2026-06-10T07:08:01.2263350Z             },
2026-06-10T07:08:01.2263622Z             {
2026-06-10T07:08:01.2264027Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.2264323Z               "line": 234
2026-06-10T07:08:01.2264604Z             },
2026-06-10T07:08:01.2264875Z             {
2026-06-10T07:08:01.2265276Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.2265562Z               "line": 298
2026-06-10T07:08:01.2265838Z             },
2026-06-10T07:08:01.2266115Z             {
2026-06-10T07:08:01.2266497Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.2266776Z               "line": 687
2026-06-10T07:08:01.2267054Z             },
2026-06-10T07:08:01.2267327Z             {
2026-06-10T07:08:01.2267684Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.2267961Z               "line": 101
2026-06-10T07:08:01.2268238Z             },
2026-06-10T07:08:01.2268524Z             {
2026-06-10T07:08:01.2268891Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2269282Z               "line": 193
2026-06-10T07:08:01.2269558Z             }
2026-06-10T07:08:01.2269836Z           ]
2026-06-10T07:08:01.2270114Z         },
2026-06-10T07:08:01.2270508Z         "int": {
2026-06-10T07:08:01.2270818Z           "complete": false,
2026-06-10T07:08:01.2271114Z           "evidence": []
2026-06-10T07:08:01.2271396Z         },
2026-06-10T07:08:01.2271673Z         "unit": {
2026-06-10T07:08:01.2271973Z           "complete": true,
2026-06-10T07:08:01.2272263Z           "evidence": [
2026-06-10T07:08:01.2272638Z             {
2026-06-10T07:08:01.2273042Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.2273333Z               "line": 927
2026-06-10T07:08:01.2273619Z             },
2026-06-10T07:08:01.2273896Z             {
2026-06-10T07:08:01.2274263Z               "path": "crates/spt-store/src/roster.rs",
2026-06-10T07:08:01.2274554Z               "line": 462
2026-06-10T07:08:01.2274831Z             }
2026-06-10T07:08:01.2275111Z           ]
2026-06-10T07:08:01.2275378Z         }
2026-06-10T07:08:01.2275663Z       }
2026-06-10T07:08:01.2275935Z     },
2026-06-10T07:08:01.2276217Z     {
2026-06-10T07:08:01.2276531Z       "id": "REQ-MESH-6",
2026-06-10T07:08:01.2280103Z       "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-10T07:08:01.2280416Z       "requiredStages": [
2026-06-10T07:08:01.2280692Z         "impl",
2026-06-10T07:08:01.2280998Z         "unit"
2026-06-10T07:08:01.2281274Z       ],
2026-06-10T07:08:01.2281593Z       "stages": {
2026-06-10T07:08:01.2281885Z         "doc": {
2026-06-10T07:08:01.2282181Z           "complete": false,
2026-06-10T07:08:01.2282477Z           "evidence": []
2026-06-10T07:08:01.2282751Z         },
2026-06-10T07:08:01.2283029Z         "impl": {
2026-06-10T07:08:01.2283326Z           "complete": true,
2026-06-10T07:08:01.2283645Z           "evidence": [
2026-06-10T07:08:01.2283922Z             {
2026-06-10T07:08:01.2284255Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2284556Z               "line": 3073
2026-06-10T07:08:01.2284832Z             }
2026-06-10T07:08:01.2285109Z           ]
2026-06-10T07:08:01.2285387Z         },
2026-06-10T07:08:01.2285695Z         "int": {
2026-06-10T07:08:01.2285995Z           "complete": false,
2026-06-10T07:08:01.2286286Z           "evidence": []
2026-06-10T07:08:01.2286572Z         },
2026-06-10T07:08:01.2286853Z         "unit": {
2026-06-10T07:08:01.2290175Z           "complete": true,
2026-06-10T07:08:01.2290499Z           "evidence": [
2026-06-10T07:08:01.2290787Z             {
2026-06-10T07:08:01.2291143Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2291429Z               "line": 7507
2026-06-10T07:08:01.2291715Z             },
2026-06-10T07:08:01.2291996Z             {
2026-06-10T07:08:01.2292339Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2292626Z               "line": 7534
2026-06-10T07:08:01.2292897Z             },
2026-06-10T07:08:01.2293168Z             {
2026-06-10T07:08:01.2293490Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2293791Z               "line": 7558
2026-06-10T07:08:01.2294058Z             }
2026-06-10T07:08:01.2294326Z           ]
2026-06-10T07:08:01.2294597Z         }
2026-06-10T07:08:01.2294868Z       }
2026-06-10T07:08:01.2295140Z     },
2026-06-10T07:08:01.2295416Z     {
2026-06-10T07:08:01.2295750Z       "id": "REQ-MIGRATE-1",
2026-06-10T07:08:01.2296284Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-10T07:08:01.2296589Z       "requiredStages": [],
2026-06-10T07:08:01.2296866Z       "stages": {
2026-06-10T07:08:01.2297147Z         "doc": {
2026-06-10T07:08:01.2297446Z           "complete": false,
2026-06-10T07:08:01.2297733Z           "evidence": []
2026-06-10T07:08:01.2298014Z         },
2026-06-10T07:08:01.2298300Z         "impl": {
2026-06-10T07:08:01.2298745Z           "complete": false,
2026-06-10T07:08:01.2299127Z           "evidence": []
2026-06-10T07:08:01.2299408Z         },
2026-06-10T07:08:01.2299689Z         "int": {
2026-06-10T07:08:01.2299984Z           "complete": false,
2026-06-10T07:08:01.2300285Z           "evidence": []
2026-06-10T07:08:01.2300567Z         },
2026-06-10T07:08:01.2300968Z         "unit": {
2026-06-10T07:08:01.2301271Z           "complete": false,
2026-06-10T07:08:01.2301559Z           "evidence": []
2026-06-10T07:08:01.2301836Z         }
2026-06-10T07:08:01.2302119Z       }
2026-06-10T07:08:01.2302399Z     },
2026-06-10T07:08:01.2302672Z     {
2026-06-10T07:08:01.2302977Z       "id": "REQ-MSG-1",
2026-06-10T07:08:01.2304398Z       "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-10T07:08:01.2304708Z       "requiredStages": [
2026-06-10T07:08:01.2304990Z         "impl",
2026-06-10T07:08:01.2305280Z         "unit",
2026-06-10T07:08:01.2305563Z         "int"
2026-06-10T07:08:01.2305835Z       ],
2026-06-10T07:08:01.2306149Z       "stages": {
2026-06-10T07:08:01.2306558Z         "doc": {
2026-06-10T07:08:01.2306863Z           "complete": false,
2026-06-10T07:08:01.2307154Z           "evidence": []
2026-06-10T07:08:01.2307436Z         },
2026-06-10T07:08:01.2307730Z         "impl": {
2026-06-10T07:08:01.2308031Z           "complete": true,
2026-06-10T07:08:01.2308321Z           "evidence": [
2026-06-10T07:08:01.2308593Z             {
2026-06-10T07:08:01.2309055Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2309343Z               "line": 28
2026-06-10T07:08:01.2309620Z             },
2026-06-10T07:08:01.2309900Z             {
2026-06-10T07:08:01.2310264Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2310554Z               "line": 94
2026-06-10T07:08:01.2310831Z             },
2026-06-10T07:08:01.2311112Z             {
2026-06-10T07:08:01.2311475Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2311751Z               "line": 127
2026-06-10T07:08:01.2312044Z             },
2026-06-10T07:08:01.2312320Z             {
2026-06-10T07:08:01.2312679Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2312978Z               "line": 149
2026-06-10T07:08:01.2313260Z             },
2026-06-10T07:08:01.2313542Z             {
2026-06-10T07:08:01.2313900Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2314195Z               "line": 174
2026-06-10T07:08:01.2314469Z             },
2026-06-10T07:08:01.2314748Z             {
2026-06-10T07:08:01.2315363Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T07:08:01.2315659Z               "line": 18
2026-06-10T07:08:01.2315940Z             },
2026-06-10T07:08:01.2316218Z             {
2026-06-10T07:08:01.2316561Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.2316846Z               "line": 13
2026-06-10T07:08:01.2317137Z             },
2026-06-10T07:08:01.2317423Z             {
2026-06-10T07:08:01.2317766Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.2318062Z               "line": 61
2026-06-10T07:08:01.2318339Z             },
2026-06-10T07:08:01.2318620Z             {
2026-06-10T07:08:01.2319044Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T07:08:01.2319335Z               "line": 10
2026-06-10T07:08:01.2319620Z             }
2026-06-10T07:08:01.2319894Z           ]
2026-06-10T07:08:01.2320185Z         },
2026-06-10T07:08:01.2320461Z         "int": {
2026-06-10T07:08:01.2320766Z           "complete": true,
2026-06-10T07:08:01.2321057Z           "evidence": [
2026-06-10T07:08:01.2321339Z             {
2026-06-10T07:08:01.2321763Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T07:08:01.2322049Z               "line": 9
2026-06-10T07:08:01.2322334Z             },
2026-06-10T07:08:01.2322604Z             {
2026-06-10T07:08:01.2323158Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T07:08:01.2323443Z               "line": 70
2026-06-10T07:08:01.2323724Z             },
2026-06-10T07:08:01.2324010Z             {
2026-06-10T07:08:01.2324431Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T07:08:01.2324722Z               "line": 129
2026-06-10T07:08:01.2325087Z             }
2026-06-10T07:08:01.2325366Z           ]
2026-06-10T07:08:01.2325642Z         },
2026-06-10T07:08:01.2325924Z         "unit": {
2026-06-10T07:08:01.2326224Z           "complete": true,
2026-06-10T07:08:01.2326510Z           "evidence": [
2026-06-10T07:08:01.2326787Z             {
2026-06-10T07:08:01.2327144Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2327440Z               "line": 203
2026-06-10T07:08:01.2327712Z             },
2026-06-10T07:08:01.2327998Z             {
2026-06-10T07:08:01.2328360Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2328655Z               "line": 232
2026-06-10T07:08:01.2328918Z             },
2026-06-10T07:08:01.2329280Z             {
2026-06-10T07:08:01.2329641Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2329928Z               "line": 277
2026-06-10T07:08:01.2330199Z             },
2026-06-10T07:08:01.2330478Z             {
2026-06-10T07:08:01.2330836Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2331128Z               "line": 300
2026-06-10T07:08:01.2331394Z             },
2026-06-10T07:08:01.2331660Z             {
2026-06-10T07:08:01.2332008Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-10T07:08:01.2332304Z               "line": 324
2026-06-10T07:08:01.2332581Z             },
2026-06-10T07:08:01.2332866Z             {
2026-06-10T07:08:01.2333230Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T07:08:01.2333517Z               "line": 203
2026-06-10T07:08:01.2333794Z             },
2026-06-10T07:08:01.2334075Z             {
2026-06-10T07:08:01.2334442Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T07:08:01.2334733Z               "line": 236
2026-06-10T07:08:01.2335005Z             },
2026-06-10T07:08:01.2335287Z             {
2026-06-10T07:08:01.2335642Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T07:08:01.2335935Z               "line": 250
2026-06-10T07:08:01.2336222Z             },
2026-06-10T07:08:01.2336498Z             {
2026-06-10T07:08:01.2336857Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T07:08:01.2337142Z               "line": 262
2026-06-10T07:08:01.2337418Z             },
2026-06-10T07:08:01.2337686Z             {
2026-06-10T07:08:01.2338033Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.2338323Z               "line": 158
2026-06-10T07:08:01.2338596Z             },
2026-06-10T07:08:01.2338872Z             {
2026-06-10T07:08:01.2339296Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-10T07:08:01.2339597Z               "line": 241
2026-06-10T07:08:01.2339873Z             },
2026-06-10T07:08:01.2340155Z             {
2026-06-10T07:08:01.2340498Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T07:08:01.2340782Z               "line": 68
2026-06-10T07:08:01.2341067Z             },
2026-06-10T07:08:01.2341338Z             {
2026-06-10T07:08:01.2341692Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T07:08:01.2341978Z               "line": 77
2026-06-10T07:08:01.2342254Z             },
2026-06-10T07:08:01.2342535Z             {
2026-06-10T07:08:01.2342878Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T07:08:01.2343174Z               "line": 83
2026-06-10T07:08:01.2343445Z             },
2026-06-10T07:08:01.2343724Z             {
2026-06-10T07:08:01.2344062Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-10T07:08:01.2344349Z               "line": 102
2026-06-10T07:08:01.2344625Z             }
2026-06-10T07:08:01.2344907Z           ]
2026-06-10T07:08:01.2345302Z         }
2026-06-10T07:08:01.2345580Z       }
2026-06-10T07:08:01.2345861Z     },
2026-06-10T07:08:01.2346135Z     {
2026-06-10T07:08:01.2346433Z       "id": "REQ-MSG-2",
2026-06-10T07:08:01.2347249Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-10T07:08:01.2347559Z       "requiredStages": [
2026-06-10T07:08:01.2347941Z         "impl",
2026-06-10T07:08:01.2348221Z         "unit"
2026-06-10T07:08:01.2348503Z       ],
2026-06-10T07:08:01.2348785Z       "stages": {
2026-06-10T07:08:01.2349156Z         "doc": {
2026-06-10T07:08:01.2349481Z           "complete": false,
2026-06-10T07:08:01.2349775Z           "evidence": []
2026-06-10T07:08:01.2350057Z         },
2026-06-10T07:08:01.2350344Z         "impl": {
2026-06-10T07:08:01.2350639Z           "complete": true,
2026-06-10T07:08:01.2350925Z           "evidence": [
2026-06-10T07:08:01.2351204Z             {
2026-06-10T07:08:01.2351545Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2351845Z               "line": 11
2026-06-10T07:08:01.2352127Z             },
2026-06-10T07:08:01.2352403Z             {
2026-06-10T07:08:01.2352742Z               "path": "crates/spt/src/main.rs",
2026-06-10T07:08:01.2353029Z               "line": 8
2026-06-10T07:08:01.2353310Z             }
2026-06-10T07:08:01.2353587Z           ]
2026-06-10T07:08:01.2353883Z         },
2026-06-10T07:08:01.2354162Z         "int": {
2026-06-10T07:08:01.2354465Z           "complete": false,
2026-06-10T07:08:01.2354756Z           "evidence": []
2026-06-10T07:08:01.2355023Z         },
2026-06-10T07:08:01.2355294Z         "unit": {
2026-06-10T07:08:01.2355595Z           "complete": true,
2026-06-10T07:08:01.2355895Z           "evidence": [
2026-06-10T07:08:01.2356177Z             {
2026-06-10T07:08:01.2356506Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2356795Z               "line": 5229
2026-06-10T07:08:01.2357070Z             },
2026-06-10T07:08:01.2357342Z             {
2026-06-10T07:08:01.2357686Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2357977Z               "line": 5278
2026-06-10T07:08:01.2358262Z             },
2026-06-10T07:08:01.2358538Z             {
2026-06-10T07:08:01.2358867Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2359241Z               "line": 5301
2026-06-10T07:08:01.2359524Z             },
2026-06-10T07:08:01.2359805Z             {
2026-06-10T07:08:01.2360130Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2360426Z               "line": 6758
2026-06-10T07:08:01.2360708Z             },
2026-06-10T07:08:01.2360993Z             {
2026-06-10T07:08:01.2361326Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2361618Z               "line": 6767
2026-06-10T07:08:01.2361898Z             },
2026-06-10T07:08:01.2362177Z             {
2026-06-10T07:08:01.2362507Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2362798Z               "line": 6781
2026-06-10T07:08:01.2363117Z             }
2026-06-10T07:08:01.2363398Z           ]
2026-06-10T07:08:01.2363674Z         }
2026-06-10T07:08:01.2363955Z       }
2026-06-10T07:08:01.2364237Z     },
2026-06-10T07:08:01.2364508Z     {
2026-06-10T07:08:01.2364816Z       "id": "REQ-MSG-3",
2026-06-10T07:08:01.2365994Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-10T07:08:01.2366299Z       "requiredStages": [
2026-06-10T07:08:01.2366580Z         "impl",
2026-06-10T07:08:01.2366866Z         "unit",
2026-06-10T07:08:01.2367156Z         "int"
2026-06-10T07:08:01.2367430Z       ],
2026-06-10T07:08:01.2367712Z       "stages": {
2026-06-10T07:08:01.2367998Z         "doc": {
2026-06-10T07:08:01.2368288Z           "complete": false,
2026-06-10T07:08:01.2368580Z           "evidence": []
2026-06-10T07:08:01.2368851Z         },
2026-06-10T07:08:01.2369210Z         "impl": {
2026-06-10T07:08:01.2369501Z           "complete": true,
2026-06-10T07:08:01.2369905Z           "evidence": [
2026-06-10T07:08:01.2370180Z             {
2026-06-10T07:08:01.2370548Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-10T07:08:01.2370844Z               "line": 19
2026-06-10T07:08:01.2371116Z             },
2026-06-10T07:08:01.2371401Z             {
2026-06-10T07:08:01.2371845Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.2372136Z               "line": 21
2026-06-10T07:08:01.2372420Z             },
2026-06-10T07:08:01.2372690Z             {
2026-06-10T07:08:01.2373042Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.2373329Z               "line": 48
2026-06-10T07:08:01.2373610Z             },
2026-06-10T07:08:01.2373891Z             {
2026-06-10T07:08:01.2374239Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.2374539Z               "line": 142
2026-06-10T07:08:01.2374816Z             }
2026-06-10T07:08:01.2375097Z           ]
2026-06-10T07:08:01.2375368Z         },
2026-06-10T07:08:01.2375657Z         "int": {
2026-06-10T07:08:01.2375958Z           "complete": true,
2026-06-10T07:08:01.2376249Z           "evidence": [
2026-06-10T07:08:01.2376525Z             {
2026-06-10T07:08:01.2376949Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T07:08:01.2377241Z               "line": 10
2026-06-10T07:08:01.2377528Z             },
2026-06-10T07:08:01.2377806Z             {
2026-06-10T07:08:01.2378229Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-10T07:08:01.2378515Z               "line": 70
2026-06-10T07:08:01.2378792Z             }
2026-06-10T07:08:01.2379149Z           ]
2026-06-10T07:08:01.2379421Z         },
2026-06-10T07:08:01.2379702Z         "unit": {
2026-06-10T07:08:01.2380002Z           "complete": true,
2026-06-10T07:08:01.2380289Z           "evidence": [
2026-06-10T07:08:01.2380564Z             {
2026-06-10T07:08:01.2380912Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.2381203Z               "line": 196
2026-06-10T07:08:01.2381490Z             },
2026-06-10T07:08:01.2381766Z             {
2026-06-10T07:08:01.2382114Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.2382405Z               "line": 215
2026-06-10T07:08:01.2382677Z             },
2026-06-10T07:08:01.2382952Z             {
2026-06-10T07:08:01.2383293Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-10T07:08:01.2383584Z               "line": 237
2026-06-10T07:08:01.2383855Z             }
2026-06-10T07:08:01.2384131Z           ]
2026-06-10T07:08:01.2384413Z         }
2026-06-10T07:08:01.2384680Z       }
2026-06-10T07:08:01.2384948Z     },
2026-06-10T07:08:01.2385220Z     {
2026-06-10T07:08:01.2385530Z       "id": "REQ-MSG-4",
2026-06-10T07:08:01.2387900Z       "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-10T07:08:01.2388219Z       "requiredStages": [
2026-06-10T07:08:01.2388503Z         "impl",
2026-06-10T07:08:01.2388780Z         "unit",
2026-06-10T07:08:01.2389142Z         "int"
2026-06-10T07:08:01.2389418Z       ],
2026-06-10T07:08:01.2389705Z       "stages": {
2026-06-10T07:08:01.2389981Z         "doc": {
2026-06-10T07:08:01.2390301Z           "complete": false,
2026-06-10T07:08:01.2390597Z           "evidence": []
2026-06-10T07:08:01.2390877Z         },
2026-06-10T07:08:01.2391171Z         "impl": {
2026-06-10T07:08:01.2391472Z           "complete": true,
2026-06-10T07:08:01.2391767Z           "evidence": [
2026-06-10T07:08:01.2392040Z             {
2026-06-10T07:08:01.2392397Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2392697Z               "line": 16
2026-06-10T07:08:01.2392979Z             },
2026-06-10T07:08:01.2393256Z             {
2026-06-10T07:08:01.2393597Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2394020Z               "line": 25
2026-06-10T07:08:01.2394296Z             },
2026-06-10T07:08:01.2394582Z             {
2026-06-10T07:08:01.2394940Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2395578Z               "line": 47
2026-06-10T07:08:01.2395865Z             },
2026-06-10T07:08:01.2396138Z             {
2026-06-10T07:08:01.2396624Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.2396924Z               "line": 363
2026-06-10T07:08:01.2397202Z             },
2026-06-10T07:08:01.2397474Z             {
2026-06-10T07:08:01.2397788Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2398065Z               "line": 2218
2026-06-10T07:08:01.2398342Z             }
2026-06-10T07:08:01.2398614Z           ]
2026-06-10T07:08:01.2398878Z         },
2026-06-10T07:08:01.2399234Z         "int": {
2026-06-10T07:08:01.2399549Z           "complete": true,
2026-06-10T07:08:01.2399853Z           "evidence": [
2026-06-10T07:08:01.2400125Z             {
2026-06-10T07:08:01.2400541Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T07:08:01.2400827Z               "line": 93
2026-06-10T07:08:01.2401108Z             },
2026-06-10T07:08:01.2401385Z             {
2026-06-10T07:08:01.2401769Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-10T07:08:01.2402070Z               "line": 123
2026-06-10T07:08:01.2402356Z             }
2026-06-10T07:08:01.2402671Z           ]
2026-06-10T07:08:01.2402943Z         },
2026-06-10T07:08:01.2403229Z         "unit": {
2026-06-10T07:08:01.2403558Z           "complete": true,
2026-06-10T07:08:01.2403845Z           "evidence": [
2026-06-10T07:08:01.2404119Z             {
2026-06-10T07:08:01.2404471Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2404757Z               "line": 62
2026-06-10T07:08:01.2405043Z             },
2026-06-10T07:08:01.2405329Z             {
2026-06-10T07:08:01.2405673Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2405973Z               "line": 73
2026-06-10T07:08:01.2406259Z             },
2026-06-10T07:08:01.2406539Z             {
2026-06-10T07:08:01.2406886Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2407175Z               "line": 84
2026-06-10T07:08:01.2407456Z             },
2026-06-10T07:08:01.2407734Z             {
2026-06-10T07:08:01.2408081Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2408372Z               "line": 96
2026-06-10T07:08:01.2408658Z             },
2026-06-10T07:08:01.2408936Z             {
2026-06-10T07:08:01.2409363Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2409694Z               "line": 105
2026-06-10T07:08:01.2409971Z             },
2026-06-10T07:08:01.2410252Z             {
2026-06-10T07:08:01.2410705Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-10T07:08:01.2411005Z               "line": 120
2026-06-10T07:08:01.2411291Z             }
2026-06-10T07:08:01.2411597Z           ]
2026-06-10T07:08:01.2411926Z         }
2026-06-10T07:08:01.2412188Z       }
2026-06-10T07:08:01.2412469Z     },
2026-06-10T07:08:01.2412741Z     {
2026-06-10T07:08:01.2413037Z       "id": "REQ-NET-1",
2026-06-10T07:08:01.2413589Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-10T07:08:01.2413899Z       "requiredStages": [
2026-06-10T07:08:01.2414194Z         "impl",
2026-06-10T07:08:01.2414471Z         "unit",
2026-06-10T07:08:01.2414764Z         "int"
2026-06-10T07:08:01.2415036Z       ],
2026-06-10T07:08:01.2415327Z       "stages": {
2026-06-10T07:08:01.2415604Z         "doc": {
2026-06-10T07:08:01.2415914Z           "complete": false,
2026-06-10T07:08:01.2416208Z           "evidence": []
2026-06-10T07:08:01.2416474Z         },
2026-06-10T07:08:01.2416766Z         "impl": {
2026-06-10T07:08:01.2417062Z           "complete": true,
2026-06-10T07:08:01.2417352Z           "evidence": [
2026-06-10T07:08:01.2417622Z             {
2026-06-10T07:08:01.2418026Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.2418436Z               "line": 54
2026-06-10T07:08:01.2418717Z             },
2026-06-10T07:08:01.2419080Z             {
2026-06-10T07:08:01.2419443Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.2419725Z               "line": 594
2026-06-10T07:08:01.2420004Z             },
2026-06-10T07:08:01.2420383Z             {
2026-06-10T07:08:01.2420742Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-10T07:08:01.2421032Z               "line": 69
2026-06-10T07:08:01.2421318Z             },
2026-06-10T07:08:01.2421594Z             {
2026-06-10T07:08:01.2421986Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2422272Z               "line": 97
2026-06-10T07:08:01.2422606Z             },
2026-06-10T07:08:01.2422885Z             {
2026-06-10T07:08:01.2423267Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2423563Z               "line": 159
2026-06-10T07:08:01.2423848Z             },
2026-06-10T07:08:01.2424129Z             {
2026-06-10T07:08:01.2424507Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2424802Z               "line": 175
2026-06-10T07:08:01.2425078Z             },
2026-06-10T07:08:01.2425362Z             {
2026-06-10T07:08:01.2425756Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2426043Z               "line": 190
2026-06-10T07:08:01.2426319Z             },
2026-06-10T07:08:01.2426597Z             {
2026-06-10T07:08:01.2426983Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2427293Z               "line": 271
2026-06-10T07:08:01.2427578Z             },
2026-06-10T07:08:01.2427869Z             {
2026-06-10T07:08:01.2428248Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2428543Z               "line": 306
2026-06-10T07:08:01.2428830Z             },
2026-06-10T07:08:01.2429197Z             {
2026-06-10T07:08:01.2429587Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2429888Z               "line": 312
2026-06-10T07:08:01.2430164Z             },
2026-06-10T07:08:01.2430441Z             {
2026-06-10T07:08:01.2430814Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2431106Z               "line": 318
2026-06-10T07:08:01.2431387Z             },
2026-06-10T07:08:01.2431673Z             {
2026-06-10T07:08:01.2432049Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2432340Z               "line": 334
2026-06-10T07:08:01.2432622Z             },
2026-06-10T07:08:01.2432899Z             {
2026-06-10T07:08:01.2433280Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2433570Z               "line": 354
2026-06-10T07:08:01.2433856Z             },
2026-06-10T07:08:01.2434133Z             {
2026-06-10T07:08:01.2434510Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T07:08:01.2434796Z               "line": 35
2026-06-10T07:08:01.2435077Z             },
2026-06-10T07:08:01.2435358Z             {
2026-06-10T07:08:01.2435728Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T07:08:01.2436016Z               "line": 85
2026-06-10T07:08:01.2436293Z             },
2026-06-10T07:08:01.2436570Z             {
2026-06-10T07:08:01.2436932Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.2437228Z               "line": 135
2026-06-10T07:08:01.2437509Z             },
2026-06-10T07:08:01.2437786Z             {
2026-06-10T07:08:01.2438119Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2438406Z               "line": 2064
2026-06-10T07:08:01.2438690Z             },
2026-06-10T07:08:01.2439061Z             {
2026-06-10T07:08:01.2439404Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.2439695Z               "line": 17
2026-06-10T07:08:01.2439967Z             }
2026-06-10T07:08:01.2440249Z           ]
2026-06-10T07:08:01.2440525Z         },
2026-06-10T07:08:01.2440912Z         "int": {
2026-06-10T07:08:01.2441196Z           "complete": true,
2026-06-10T07:08:01.2441484Z           "evidence": [
2026-06-10T07:08:01.2441755Z             {
2026-06-10T07:08:01.2442148Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.2442433Z               "line": 341
2026-06-10T07:08:01.2442801Z             },
2026-06-10T07:08:01.2443087Z             {
2026-06-10T07:08:01.2443464Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2443755Z               "line": 605
2026-06-10T07:08:01.2444034Z             },
2026-06-10T07:08:01.2444315Z             {
2026-06-10T07:08:01.2444698Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2444983Z               "line": 878
2026-06-10T07:08:01.2445274Z             }
2026-06-10T07:08:01.2445545Z           ]
2026-06-10T07:08:01.2445826Z         },
2026-06-10T07:08:01.2446099Z         "unit": {
2026-06-10T07:08:01.2446398Z           "complete": true,
2026-06-10T07:08:01.2446736Z           "evidence": [
2026-06-10T07:08:01.2447007Z             {
2026-06-10T07:08:01.2447388Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.2447674Z               "line": 650
2026-06-10T07:08:01.2447961Z             },
2026-06-10T07:08:01.2448242Z             {
2026-06-10T07:08:01.2448632Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.2448929Z               "line": 685
2026-06-10T07:08:01.2449292Z             },
2026-06-10T07:08:01.2449569Z             {
2026-06-10T07:08:01.2449955Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.2450246Z               "line": 932
2026-06-10T07:08:01.2450522Z             },
2026-06-10T07:08:01.2450790Z             {
2026-06-10T07:08:01.2451166Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-10T07:08:01.2451453Z               "line": 152
2026-06-10T07:08:01.2451727Z             },
2026-06-10T07:08:01.2452010Z             {
2026-06-10T07:08:01.2452393Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2452683Z               "line": 442
2026-06-10T07:08:01.2452954Z             },
2026-06-10T07:08:01.2453236Z             {
2026-06-10T07:08:01.2453618Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2453918Z               "line": 456
2026-06-10T07:08:01.2454195Z             },
2026-06-10T07:08:01.2454461Z             {
2026-06-10T07:08:01.2454832Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2455306Z               "line": 475
2026-06-10T07:08:01.2455611Z             },
2026-06-10T07:08:01.2455926Z             {
2026-06-10T07:08:01.2456317Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T07:08:01.2456608Z               "line": 119
2026-06-10T07:08:01.2456887Z             },
2026-06-10T07:08:01.2457166Z             {
2026-06-10T07:08:01.2457538Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-10T07:08:01.2457849Z               "line": 162
2026-06-10T07:08:01.2458130Z             },
2026-06-10T07:08:01.2458405Z             {
2026-06-10T07:08:01.2458774Z               "path": "crates/spt-store/src/spool.rs",
2026-06-10T07:08:01.2459165Z               "line": 492
2026-06-10T07:08:01.2459466Z             },
2026-06-10T07:08:01.2459735Z             {
2026-06-10T07:08:01.2460081Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.2460376Z               "line": 615
2026-06-10T07:08:01.2460647Z             },
2026-06-10T07:08:01.2460934Z             {
2026-06-10T07:08:01.2461272Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.2461559Z               "line": 1004
2026-06-10T07:08:01.2461840Z             }
2026-06-10T07:08:01.2462116Z           ]
2026-06-10T07:08:01.2462391Z         }
2026-06-10T07:08:01.2462671Z       }
2026-06-10T07:08:01.2462943Z     },
2026-06-10T07:08:01.2463214Z     {
2026-06-10T07:08:01.2463510Z       "id": "REQ-NET-2",
2026-06-10T07:08:01.2464188Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-10T07:08:01.2464498Z       "requiredStages": [
2026-06-10T07:08:01.2464779Z         "impl"
2026-06-10T07:08:01.2465059Z       ],
2026-06-10T07:08:01.2465345Z       "stages": {
2026-06-10T07:08:01.2465627Z         "doc": {
2026-06-10T07:08:01.2465927Z           "complete": false,
2026-06-10T07:08:01.2466314Z           "evidence": []
2026-06-10T07:08:01.2466594Z         },
2026-06-10T07:08:01.2466877Z         "impl": {
2026-06-10T07:08:01.2467158Z           "complete": true,
2026-06-10T07:08:01.2467447Z           "evidence": [
2026-06-10T07:08:01.2467721Z             {
2026-06-10T07:08:01.2468093Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:01.2468380Z               "line": 57
2026-06-10T07:08:01.2468651Z             },
2026-06-10T07:08:01.2468927Z             {
2026-06-10T07:08:01.2469372Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2469658Z               "line": 71
2026-06-10T07:08:01.2469934Z             },
2026-06-10T07:08:01.2470205Z             {
2026-06-10T07:08:01.2470583Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2470879Z               "line": 81
2026-06-10T07:08:01.2471150Z             },
2026-06-10T07:08:01.2471428Z             {
2026-06-10T07:08:01.2471804Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2472085Z               "line": 159
2026-06-10T07:08:01.2472361Z             },
2026-06-10T07:08:01.2472630Z             {
2026-06-10T07:08:01.2473007Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2473290Z               "line": 175
2026-06-10T07:08:01.2473561Z             },
2026-06-10T07:08:01.2473833Z             {
2026-06-10T07:08:01.2474209Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-10T07:08:01.2474501Z               "line": 190
2026-06-10T07:08:01.2474767Z             }
2026-06-10T07:08:01.2475043Z           ]
2026-06-10T07:08:01.2475315Z         },
2026-06-10T07:08:01.2475596Z         "int": {
2026-06-10T07:08:01.2475896Z           "complete": false,
2026-06-10T07:08:01.2476182Z           "evidence": []
2026-06-10T07:08:01.2476450Z         },
2026-06-10T07:08:01.2476726Z         "unit": {
2026-06-10T07:08:01.2477022Z           "complete": true,
2026-06-10T07:08:01.2477322Z           "evidence": [
2026-06-10T07:08:01.2477598Z             {
2026-06-10T07:08:01.2477974Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:01.2478252Z               "line": 402
2026-06-10T07:08:01.2478533Z             }
2026-06-10T07:08:01.2478811Z           ]
2026-06-10T07:08:01.2479163Z         }
2026-06-10T07:08:01.2479431Z       }
2026-06-10T07:08:01.2479702Z     },
2026-06-10T07:08:01.2479975Z     {
2026-06-10T07:08:01.2480261Z       "id": "REQ-NET-3",
2026-06-10T07:08:01.2480765Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-10T07:08:01.2481058Z       "requiredStages": [
2026-06-10T07:08:01.2481349Z         "impl",
2026-06-10T07:08:01.2481631Z         "unit"
2026-06-10T07:08:01.2481902Z       ],
2026-06-10T07:08:01.2482189Z       "stages": {
2026-06-10T07:08:01.2482465Z         "doc": {
2026-06-10T07:08:01.2482771Z           "complete": false,
2026-06-10T07:08:01.2483056Z           "evidence": []
2026-06-10T07:08:01.2483340Z         },
2026-06-10T07:08:01.2483625Z         "impl": {
2026-06-10T07:08:01.2483925Z           "complete": true,
2026-06-10T07:08:01.2484221Z           "evidence": [
2026-06-10T07:08:01.2484493Z             {
2026-06-10T07:08:01.2484860Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.2485145Z               "line": 39
2026-06-10T07:08:01.2485427Z             },
2026-06-10T07:08:01.2485700Z             {
2026-06-10T07:08:01.2486066Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.2486356Z               "line": 182
2026-06-10T07:08:01.2486628Z             },
2026-06-10T07:08:01.2486904Z             {
2026-06-10T07:08:01.2487386Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-10T07:08:01.2487677Z               "line": 333
2026-06-10T07:08:01.2487959Z             },
2026-06-10T07:08:01.2488231Z             {
2026-06-10T07:08:01.2488591Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T07:08:01.2488880Z               "line": 36
2026-06-10T07:08:01.2489347Z             },
2026-06-10T07:08:01.2489628Z             {
2026-06-10T07:08:01.2490019Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2490315Z               "line": 158
2026-06-10T07:08:01.2490596Z             },
2026-06-10T07:08:01.2490883Z             {
2026-06-10T07:08:01.2491268Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2491557Z               "line": 212
2026-06-10T07:08:01.2491833Z             },
2026-06-10T07:08:01.2495273Z             {
2026-06-10T07:08:01.2495820Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2496217Z               "line": 233
2026-06-10T07:08:01.2496518Z             },
2026-06-10T07:08:01.2496791Z             {
2026-06-10T07:08:01.2497202Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2497546Z               "line": 291
2026-06-10T07:08:01.2497837Z             },
2026-06-10T07:08:01.2498132Z             {
2026-06-10T07:08:01.2498537Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2498829Z               "line": 310
2026-06-10T07:08:01.2499184Z             },
2026-06-10T07:08:01.2499468Z             {
2026-06-10T07:08:01.2499855Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2500155Z               "line": 348
2026-06-10T07:08:01.2500437Z             },
2026-06-10T07:08:01.2500709Z             {
2026-06-10T07:08:01.2501100Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2501381Z               "line": 393
2026-06-10T07:08:01.2501663Z             },
2026-06-10T07:08:01.2501970Z             {
2026-06-10T07:08:01.2502360Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.2502651Z               "line": 406
2026-06-10T07:08:01.2502927Z             },
2026-06-10T07:08:01.2503208Z             {
2026-06-10T07:08:01.2503581Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.2503881Z               "line": 29
2026-06-10T07:08:01.2504157Z             },
2026-06-10T07:08:01.2504461Z             {
2026-06-10T07:08:01.2504850Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.2505130Z               "line": 72
2026-06-10T07:08:01.2505412Z             },
2026-06-10T07:08:01.2505689Z             {
2026-06-10T07:08:01.2506070Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.2506366Z               "line": 123
2026-06-10T07:08:01.2506643Z             }
2026-06-10T07:08:01.2506923Z           ]
2026-06-10T07:08:01.2507201Z         },
2026-06-10T07:08:01.2507486Z         "int": {
2026-06-10T07:08:01.2507787Z           "complete": false,
2026-06-10T07:08:01.2508087Z           "evidence": []
2026-06-10T07:08:01.2508482Z         },
2026-06-10T07:08:01.2508778Z         "unit": {
2026-06-10T07:08:01.2509145Z           "complete": true,
2026-06-10T07:08:01.2509464Z           "evidence": [
2026-06-10T07:08:01.2509735Z             {
2026-06-10T07:08:01.2510143Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T07:08:01.2510429Z               "line": 223
2026-06-10T07:08:01.2510711Z             },
2026-06-10T07:08:01.2510987Z             {
2026-06-10T07:08:01.2511359Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T07:08:01.2511646Z               "line": 351
2026-06-10T07:08:01.2511932Z             },
2026-06-10T07:08:01.2512208Z             {
2026-06-10T07:08:01.2512583Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-10T07:08:01.2512877Z               "line": 502
2026-06-10T07:08:01.2513153Z             },
2026-06-10T07:08:01.2513583Z             {
2026-06-10T07:08:01.2513935Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T07:08:01.2514217Z               "line": 93
2026-06-10T07:08:01.2514498Z             },
2026-06-10T07:08:01.2514785Z             {
2026-06-10T07:08:01.2515150Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-10T07:08:01.2515438Z               "line": 142
2026-06-10T07:08:01.2515816Z             },
2026-06-10T07:08:01.2516092Z             {
2026-06-10T07:08:01.2516474Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.2516760Z               "line": 315
2026-06-10T07:08:01.2517032Z             },
2026-06-10T07:08:01.2517313Z             {
2026-06-10T07:08:01.2517690Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.2517979Z               "line": 355
2026-06-10T07:08:01.2518255Z             },
2026-06-10T07:08:01.2518541Z             {
2026-06-10T07:08:01.2518904Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-10T07:08:01.2519287Z               "line": 494
2026-06-10T07:08:01.2519568Z             }
2026-06-10T07:08:01.2519834Z           ]
2026-06-10T07:08:01.2520110Z         }
2026-06-10T07:08:01.2520383Z       }
2026-06-10T07:08:01.2520661Z     },
2026-06-10T07:08:01.2520923Z     {
2026-06-10T07:08:01.2521228Z       "id": "REQ-NODE-IDENTITY",
2026-06-10T07:08:01.2521962Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-10T07:08:01.2522267Z       "requiredStages": [
2026-06-10T07:08:01.2522558Z         "impl",
2026-06-10T07:08:01.2522845Z         "unit"
2026-06-10T07:08:01.2523129Z       ],
2026-06-10T07:08:01.2523408Z       "stages": {
2026-06-10T07:08:01.2523694Z         "doc": {
2026-06-10T07:08:01.2524003Z           "complete": false,
2026-06-10T07:08:01.2524290Z           "evidence": []
2026-06-10T07:08:01.2524567Z         },
2026-06-10T07:08:01.2524852Z         "impl": {
2026-06-10T07:08:01.2525148Z           "complete": true,
2026-06-10T07:08:01.2525445Z           "evidence": [
2026-06-10T07:08:01.2525719Z             {
2026-06-10T07:08:01.2526100Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2526386Z               "line": 60
2026-06-10T07:08:01.2526667Z             },
2026-06-10T07:08:01.2526944Z             {
2026-06-10T07:08:01.2527330Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2527616Z               "line": 68
2026-06-10T07:08:01.2527893Z             },
2026-06-10T07:08:01.2528178Z             {
2026-06-10T07:08:01.2528558Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2528849Z               "line": 86
2026-06-10T07:08:01.2529217Z             },
2026-06-10T07:08:01.2529493Z             {
2026-06-10T07:08:01.2529871Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2530161Z               "line": 120
2026-06-10T07:08:01.2530437Z             },
2026-06-10T07:08:01.2530717Z             {
2026-06-10T07:08:01.2531096Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2531397Z               "line": 127
2026-06-10T07:08:01.2531677Z             },
2026-06-10T07:08:01.2531949Z             {
2026-06-10T07:08:01.2532326Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2532617Z               "line": 143
2026-06-10T07:08:01.2532884Z             },
2026-06-10T07:08:01.2533160Z             {
2026-06-10T07:08:01.2533522Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T07:08:01.2533815Z               "line": 16
2026-06-10T07:08:01.2534093Z             }
2026-06-10T07:08:01.2534364Z           ]
2026-06-10T07:08:01.2534651Z         },
2026-06-10T07:08:01.2534926Z         "int": {
2026-06-10T07:08:01.2535227Z           "complete": false,
2026-06-10T07:08:01.2535513Z           "evidence": []
2026-06-10T07:08:01.2535795Z         },
2026-06-10T07:08:01.2536070Z         "unit": {
2026-06-10T07:08:01.2536373Z           "complete": true,
2026-06-10T07:08:01.2536660Z           "evidence": [
2026-06-10T07:08:01.2537045Z             {
2026-06-10T07:08:01.2537430Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2537722Z               "line": 199
2026-06-10T07:08:01.2537999Z             },
2026-06-10T07:08:01.2538275Z             {
2026-06-10T07:08:01.2538667Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2539152Z               "line": 218
2026-06-10T07:08:01.2539433Z             },
2026-06-10T07:08:01.2539709Z             {
2026-06-10T07:08:01.2540092Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2540387Z               "line": 234
2026-06-10T07:08:01.2540668Z             },
2026-06-10T07:08:01.2540944Z             {
2026-06-10T07:08:01.2541320Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-10T07:08:01.2541608Z               "line": 256
2026-06-10T07:08:01.2541890Z             },
2026-06-10T07:08:01.2542161Z             {
2026-06-10T07:08:01.2542538Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T07:08:01.2542838Z               "line": 124
2026-06-10T07:08:01.2543106Z             },
2026-06-10T07:08:01.2543382Z             {
2026-06-10T07:08:01.2543739Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T07:08:01.2544030Z               "line": 140
2026-06-10T07:08:01.2544306Z             },
2026-06-10T07:08:01.2544591Z             {
2026-06-10T07:08:01.2544967Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-10T07:08:01.2545253Z               "line": 155
2026-06-10T07:08:01.2545540Z             }
2026-06-10T07:08:01.2545816Z           ]
2026-06-10T07:08:01.2546097Z         }
2026-06-10T07:08:01.2546369Z       }
2026-06-10T07:08:01.2546654Z     },
2026-06-10T07:08:01.2546928Z     {
2026-06-10T07:08:01.2547229Z       "id": "REQ-NOTIF-1",
2026-06-10T07:08:01.2548344Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-10T07:08:01.2548659Z       "requiredStages": [
2026-06-10T07:08:01.2549027Z         "impl",
2026-06-10T07:08:01.2549313Z         "unit",
2026-06-10T07:08:01.2549582Z         "int"
2026-06-10T07:08:01.2549873Z       ],
2026-06-10T07:08:01.2550155Z       "stages": {
2026-06-10T07:08:01.2550437Z         "doc": {
2026-06-10T07:08:01.2550737Z           "complete": false,
2026-06-10T07:08:01.2551043Z           "evidence": []
2026-06-10T07:08:01.2551315Z         },
2026-06-10T07:08:01.2551596Z         "impl": {
2026-06-10T07:08:01.2551899Z           "complete": true,
2026-06-10T07:08:01.2552187Z           "evidence": [
2026-06-10T07:08:01.2552469Z             {
2026-06-10T07:08:01.2552846Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.2553141Z               "line": 514
2026-06-10T07:08:01.2553442Z             },
2026-06-10T07:08:01.2553718Z             {
2026-06-10T07:08:01.2554086Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2554372Z               "line": 30
2026-06-10T07:08:01.2554662Z             },
2026-06-10T07:08:01.2554931Z             {
2026-06-10T07:08:01.2555288Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2555561Z               "line": 62
2026-06-10T07:08:01.2555832Z             },
2026-06-10T07:08:01.2556110Z             {
2026-06-10T07:08:01.2556462Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2556754Z               "line": 86
2026-06-10T07:08:01.2557035Z             },
2026-06-10T07:08:01.2557314Z             {
2026-06-10T07:08:01.2557674Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2557951Z               "line": 100
2026-06-10T07:08:01.2558236Z             },
2026-06-10T07:08:01.2558503Z             {
2026-06-10T07:08:01.2558866Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2559238Z               "line": 135
2026-06-10T07:08:01.2559509Z             },
2026-06-10T07:08:01.2559782Z             {
2026-06-10T07:08:01.2560142Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2560539Z               "line": 180
2026-06-10T07:08:01.2560815Z             },
2026-06-10T07:08:01.2561091Z             {
2026-06-10T07:08:01.2561449Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2561735Z               "line": 251
2026-06-10T07:08:01.2562017Z             },
2026-06-10T07:08:01.2562397Z             {
2026-06-10T07:08:01.2562757Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2563038Z               "line": 361
2026-06-10T07:08:01.2563334Z             },
2026-06-10T07:08:01.2563615Z             {
2026-06-10T07:08:01.2564025Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2564321Z               "line": 421
2026-06-10T07:08:01.2564597Z             },
2026-06-10T07:08:01.2564874Z             {
2026-06-10T07:08:01.2565255Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2565543Z               "line": 24
2026-06-10T07:08:01.2565834Z             },
2026-06-10T07:08:01.2566112Z             {
2026-06-10T07:08:01.2566520Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2566811Z               "line": 34
2026-06-10T07:08:01.2567088Z             },
2026-06-10T07:08:01.2567360Z             {
2026-06-10T07:08:01.2567755Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2568044Z               "line": 60
2026-06-10T07:08:01.2568321Z             },
2026-06-10T07:08:01.2568602Z             {
2026-06-10T07:08:01.2569045Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2569345Z               "line": 82
2026-06-10T07:08:01.2569622Z             },
2026-06-10T07:08:01.2569908Z             {
2026-06-10T07:08:01.2570289Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2570580Z               "line": 94
2026-06-10T07:08:01.2570876Z             },
2026-06-10T07:08:01.2571147Z             {
2026-06-10T07:08:01.2571538Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.2571834Z               "line": 43
2026-06-10T07:08:01.2572115Z             },
2026-06-10T07:08:01.2572388Z             {
2026-06-10T07:08:01.2572773Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.2573067Z               "line": 96
2026-06-10T07:08:01.2573432Z             },
2026-06-10T07:08:01.2573785Z             {
2026-06-10T07:08:01.2574228Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T07:08:01.2574519Z               "line": 20
2026-06-10T07:08:01.2574791Z             },
2026-06-10T07:08:01.2575077Z             {
2026-06-10T07:08:01.2575449Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T07:08:01.2575734Z               "line": 30
2026-06-10T07:08:01.2576014Z             },
2026-06-10T07:08:01.2576290Z             {
2026-06-10T07:08:01.2576662Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T07:08:01.2576943Z               "line": 50
2026-06-10T07:08:01.2577235Z             },
2026-06-10T07:08:01.2577511Z             {
2026-06-10T07:08:01.2577869Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2578155Z               "line": 28
2026-06-10T07:08:01.2578434Z             },
2026-06-10T07:08:01.2578708Z             {
2026-06-10T07:08:01.2579195Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2579524Z               "line": 126
2026-06-10T07:08:01.2579801Z             },
2026-06-10T07:08:01.2580073Z             {
2026-06-10T07:08:01.2580436Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2580722Z               "line": 161
2026-06-10T07:08:01.2580994Z             },
2026-06-10T07:08:01.2581277Z             {
2026-06-10T07:08:01.2581635Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2581911Z               "line": 202
2026-06-10T07:08:01.2582188Z             },
2026-06-10T07:08:01.2582465Z             {
2026-06-10T07:08:01.2582822Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2583262Z               "line": 213
2026-06-10T07:08:01.2583546Z             },
2026-06-10T07:08:01.2583825Z             {
2026-06-10T07:08:01.2584168Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2584449Z               "line": 238
2026-06-10T07:08:01.2584731Z             },
2026-06-10T07:08:01.2585088Z             {
2026-06-10T07:08:01.2585456Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2585746Z               "line": 261
2026-06-10T07:08:01.2586014Z             },
2026-06-10T07:08:01.2586281Z             {
2026-06-10T07:08:01.2586654Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.2586936Z               "line": 63
2026-06-10T07:08:01.2587198Z             }
2026-06-10T07:08:01.2587475Z           ]
2026-06-10T07:08:01.2587751Z         },
2026-06-10T07:08:01.2588027Z         "int": {
2026-06-10T07:08:01.2588323Z           "complete": true,
2026-06-10T07:08:01.2588619Z           "evidence": [
2026-06-10T07:08:01.2588904Z             {
2026-06-10T07:08:01.2589403Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.2589684Z               "line": 285
2026-06-10T07:08:01.2589965Z             },
2026-06-10T07:08:01.2590231Z             {
2026-06-10T07:08:01.2590619Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-10T07:08:01.2590938Z               "line": 102
2026-06-10T07:08:01.2591219Z             },
2026-06-10T07:08:01.2591491Z             {
2026-06-10T07:08:01.2591866Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2592152Z               "line": 614
2026-06-10T07:08:01.2592429Z             },
2026-06-10T07:08:01.2592701Z             {
2026-06-10T07:08:01.2593082Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2593373Z               "line": 1007
2026-06-10T07:08:01.2593644Z             }
2026-06-10T07:08:01.2593917Z           ]
2026-06-10T07:08:01.2594206Z         },
2026-06-10T07:08:01.2594471Z         "unit": {
2026-06-10T07:08:01.2594771Z           "complete": true,
2026-06-10T07:08:01.2595139Z           "evidence": [
2026-06-10T07:08:01.2595463Z             {
2026-06-10T07:08:01.2595826Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2596127Z               "line": 514
2026-06-10T07:08:01.2596460Z             },
2026-06-10T07:08:01.2596732Z             {
2026-06-10T07:08:01.2597106Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2597381Z               "line": 563
2026-06-10T07:08:01.2597658Z             },
2026-06-10T07:08:01.2597929Z             {
2026-06-10T07:08:01.2598292Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2598583Z               "line": 666
2026-06-10T07:08:01.2598849Z             },
2026-06-10T07:08:01.2599198Z             {
2026-06-10T07:08:01.2599549Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2599828Z               "line": 698
2026-06-10T07:08:01.2600105Z             },
2026-06-10T07:08:01.2600382Z             {
2026-06-10T07:08:01.2600739Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2601026Z               "line": 766
2026-06-10T07:08:01.2601302Z             },
2026-06-10T07:08:01.2601566Z             {
2026-06-10T07:08:01.2601927Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2602228Z               "line": 824
2026-06-10T07:08:01.2602503Z             },
2026-06-10T07:08:01.2602779Z             {
2026-06-10T07:08:01.2603133Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2603428Z               "line": 1045
2026-06-10T07:08:01.2603699Z             },
2026-06-10T07:08:01.2603981Z             {
2026-06-10T07:08:01.2604358Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2604642Z               "line": 157
2026-06-10T07:08:01.2604935Z             },
2026-06-10T07:08:01.2605336Z             {
2026-06-10T07:08:01.2605961Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2606237Z               "line": 250
2026-06-10T07:08:01.2606524Z             },
2026-06-10T07:08:01.2606810Z             {
2026-06-10T07:08:01.2607191Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-10T07:08:01.2607481Z               "line": 273
2026-06-10T07:08:01.2607850Z             },
2026-06-10T07:08:01.2608131Z             {
2026-06-10T07:08:01.2608509Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.2608804Z               "line": 341
2026-06-10T07:08:01.2609162Z             },
2026-06-10T07:08:01.2609453Z             {
2026-06-10T07:08:01.2609831Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-10T07:08:01.2610114Z               "line": 373
2026-06-10T07:08:01.2610393Z             },
2026-06-10T07:08:01.2610665Z             {
2026-06-10T07:08:01.2611061Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-10T07:08:01.2611361Z               "line": 131
2026-06-10T07:08:01.2611633Z             },
2026-06-10T07:08:01.2611910Z             {
2026-06-10T07:08:01.2612277Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T07:08:01.2612563Z               "line": 72
2026-06-10T07:08:01.2612839Z             },
2026-06-10T07:08:01.2613140Z             {
2026-06-10T07:08:01.2613520Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-10T07:08:01.2613817Z               "line": 97
2026-06-10T07:08:01.2614093Z             },
2026-06-10T07:08:01.2614361Z             {
2026-06-10T07:08:01.2614727Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2615023Z               "line": 379
2026-06-10T07:08:01.2615293Z             },
2026-06-10T07:08:01.2615577Z             {
2026-06-10T07:08:01.2615930Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2616221Z               "line": 417
2026-06-10T07:08:01.2616492Z             },
2026-06-10T07:08:01.2616774Z             {
2026-06-10T07:08:01.2617126Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2617418Z               "line": 433
2026-06-10T07:08:01.2617704Z             },
2026-06-10T07:08:01.2617975Z             {
2026-06-10T07:08:01.2618335Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2618649Z               "line": 472
2026-06-10T07:08:01.2619035Z             },
2026-06-10T07:08:01.2619317Z             {
2026-06-10T07:08:01.2619669Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2619956Z               "line": 489
2026-06-10T07:08:01.2620232Z             },
2026-06-10T07:08:01.2620514Z             {
2026-06-10T07:08:01.2620868Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2621155Z               "line": 517
2026-06-10T07:08:01.2621436Z             },
2026-06-10T07:08:01.2621717Z             {
2026-06-10T07:08:01.2622075Z               "path": "crates/spt-store/src/notif.rs",
2026-06-10T07:08:01.2622357Z               "line": 548
2026-06-10T07:08:01.2622647Z             },
2026-06-10T07:08:01.2622924Z             {
2026-06-10T07:08:01.2623301Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.2623594Z               "line": 455
2026-06-10T07:08:01.2623865Z             }
2026-06-10T07:08:01.2624142Z           ]
2026-06-10T07:08:01.2624419Z         }
2026-06-10T07:08:01.2624710Z       }
2026-06-10T07:08:01.2624991Z     },
2026-06-10T07:08:01.2625269Z     {
2026-06-10T07:08:01.2625579Z       "id": "REQ-NOTIF-2",
2026-06-10T07:08:01.2626385Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-10T07:08:01.2626700Z       "requiredStages": [
2026-06-10T07:08:01.2626976Z         "doc",
2026-06-10T07:08:01.2627263Z         "impl",
2026-06-10T07:08:01.2627534Z         "unit",
2026-06-10T07:08:01.2627821Z         "int"
2026-06-10T07:08:01.2628099Z       ],
2026-06-10T07:08:01.2628365Z       "stages": {
2026-06-10T07:08:01.2628768Z         "doc": {
2026-06-10T07:08:01.2629143Z           "complete": true,
2026-06-10T07:08:01.2629434Z           "evidence": [
2026-06-10T07:08:01.2629701Z             {
2026-06-10T07:08:01.2630002Z               "path": "CONTEXT.md",
2026-06-10T07:08:01.2630287Z               "line": 346
2026-06-10T07:08:01.2630558Z             },
2026-06-10T07:08:01.2630836Z             {
2026-06-10T07:08:01.2631230Z               "path": "docs/MANIFEST.md",
2026-06-10T07:08:01.2631528Z               "line": 62
2026-06-10T07:08:01.2631799Z             }
2026-06-10T07:08:01.2632081Z           ]
2026-06-10T07:08:01.2632363Z         },
2026-06-10T07:08:01.2632644Z         "impl": {
2026-06-10T07:08:01.2632945Z           "complete": true,
2026-06-10T07:08:01.2633231Z           "evidence": [
2026-06-10T07:08:01.2633513Z             {
2026-06-10T07:08:01.2633875Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2634169Z               "line": 280
2026-06-10T07:08:01.2634455Z             },
2026-06-10T07:08:01.2634740Z             {
2026-06-10T07:08:01.2635104Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2635380Z               "line": 294
2026-06-10T07:08:01.2635646Z             },
2026-06-10T07:08:01.2635923Z             {
2026-06-10T07:08:01.2636285Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2636597Z               "line": 319
2026-06-10T07:08:01.2636869Z             },
2026-06-10T07:08:01.2637151Z             {
2026-06-10T07:08:01.2637526Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.2637814Z               "line": 126
2026-06-10T07:08:01.2638089Z             },
2026-06-10T07:08:01.2638363Z             {
2026-06-10T07:08:01.2638738Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.2639100Z               "line": 72
2026-06-10T07:08:01.2639379Z             },
2026-06-10T07:08:01.2639656Z             {
2026-06-10T07:08:01.2639980Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2640275Z               "line": 1546
2026-06-10T07:08:01.2640552Z             },
2026-06-10T07:08:01.2640838Z             {
2026-06-10T07:08:01.2641162Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2641448Z               "line": 1595
2026-06-10T07:08:01.2641723Z             },
2026-06-10T07:08:01.2641993Z             {
2026-06-10T07:08:01.2642336Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2642627Z               "line": 1674
2026-06-10T07:08:01.2642904Z             },
2026-06-10T07:08:01.2643166Z             {
2026-06-10T07:08:01.2643491Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2643777Z               "line": 1713
2026-06-10T07:08:01.2644044Z             }
2026-06-10T07:08:01.2644315Z           ]
2026-06-10T07:08:01.2644600Z         },
2026-06-10T07:08:01.2644882Z         "int": {
2026-06-10T07:08:01.2645173Z           "complete": true,
2026-06-10T07:08:01.2645463Z           "evidence": [
2026-06-10T07:08:01.2645740Z             {
2026-06-10T07:08:01.2646135Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2646431Z               "line": 740
2026-06-10T07:08:01.2646708Z             },
2026-06-10T07:08:01.2646988Z             {
2026-06-10T07:08:01.2647368Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2647663Z               "line": 1160
2026-06-10T07:08:01.2647935Z             }
2026-06-10T07:08:01.2648231Z           ]
2026-06-10T07:08:01.2648516Z         },
2026-06-10T07:08:01.2648797Z         "unit": {
2026-06-10T07:08:01.2649180Z           "complete": true,
2026-06-10T07:08:01.2649476Z           "evidence": [
2026-06-10T07:08:01.2649764Z             {
2026-06-10T07:08:01.2650129Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2650424Z               "line": 894
2026-06-10T07:08:01.2650706Z             },
2026-06-10T07:08:01.2650982Z             {
2026-06-10T07:08:01.2651345Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2651776Z               "line": 962
2026-06-10T07:08:01.2652057Z             },
2026-06-10T07:08:01.2652331Z             {
2026-06-10T07:08:01.2652667Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2652962Z               "line": 5546
2026-06-10T07:08:01.2653239Z             },
2026-06-10T07:08:01.2653516Z             {
2026-06-10T07:08:01.2653965Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2654265Z               "line": 5601
2026-06-10T07:08:01.2654541Z             }
2026-06-10T07:08:01.2654832Z           ]
2026-06-10T07:08:01.2655113Z         }
2026-06-10T07:08:01.2655385Z       }
2026-06-10T07:08:01.2655652Z     },
2026-06-10T07:08:01.2655924Z     {
2026-06-10T07:08:01.2656229Z       "id": "REQ-PAIR-1",
2026-06-10T07:08:01.2656563Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-10T07:08:01.2656873Z       "requiredStages": [
2026-06-10T07:08:01.2657153Z         "impl",
2026-06-10T07:08:01.2657438Z         "unit",
2026-06-10T07:08:01.2657722Z         "int"
2026-06-10T07:08:01.2658017Z       ],
2026-06-10T07:08:01.2658309Z       "stages": {
2026-06-10T07:08:01.2658590Z         "doc": {
2026-06-10T07:08:01.2658890Z           "complete": false,
2026-06-10T07:08:01.2659272Z           "evidence": []
2026-06-10T07:08:01.2659543Z         },
2026-06-10T07:08:01.2659831Z         "impl": {
2026-06-10T07:08:01.2660127Z           "complete": true,
2026-06-10T07:08:01.2660425Z           "evidence": [
2026-06-10T07:08:01.2660699Z             {
2026-06-10T07:08:01.2661109Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.2661401Z               "line": 27
2026-06-10T07:08:01.2661682Z             },
2026-06-10T07:08:01.2661958Z             {
2026-06-10T07:08:01.2662369Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.2662660Z               "line": 88
2026-06-10T07:08:01.2662939Z             },
2026-06-10T07:08:01.2663217Z             {
2026-06-10T07:08:01.2663615Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.2663910Z               "line": 110
2026-06-10T07:08:01.2664191Z             },
2026-06-10T07:08:01.2664458Z             {
2026-06-10T07:08:01.2664864Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.2665140Z               "line": 153
2026-06-10T07:08:01.2665407Z             },
2026-06-10T07:08:01.2665682Z             {
2026-06-10T07:08:01.2666077Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.2666368Z               "line": 182
2026-06-10T07:08:01.2666641Z             },
2026-06-10T07:08:01.2666917Z             {
2026-06-10T07:08:01.2667318Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2667609Z               "line": 29
2026-06-10T07:08:01.2667875Z             },
2026-06-10T07:08:01.2668146Z             {
2026-06-10T07:08:01.2668587Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-10T07:08:01.2668864Z               "line": 31
2026-06-10T07:08:01.2669235Z             },
2026-06-10T07:08:01.2669503Z             {
2026-06-10T07:08:01.2669908Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2670199Z               "line": 44
2026-06-10T07:08:01.2670470Z             },
2026-06-10T07:08:01.2670748Z             {
2026-06-10T07:08:01.2671144Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2671440Z               "line": 171
2026-06-10T07:08:01.2671718Z             },
2026-06-10T07:08:01.2671998Z             {
2026-06-10T07:08:01.2672399Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2672689Z               "line": 376
2026-06-10T07:08:01.2673057Z             }
2026-06-10T07:08:01.2673332Z           ]
2026-06-10T07:08:01.2673617Z         },
2026-06-10T07:08:01.2673888Z         "int": {
2026-06-10T07:08:01.2674184Z           "complete": true,
2026-06-10T07:08:01.2674485Z           "evidence": [
2026-06-10T07:08:01.2674865Z             {
2026-06-10T07:08:01.2675252Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2675542Z               "line": 575
2026-06-10T07:08:01.2675829Z             },
2026-06-10T07:08:01.2676102Z             {
2026-06-10T07:08:01.2676486Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2677243Z               "line": 792
2026-06-10T07:08:01.2677544Z             }
2026-06-10T07:08:01.2677859Z           ]
2026-06-10T07:08:01.2678145Z         },
2026-06-10T07:08:01.2678464Z         "unit": {
2026-06-10T07:08:01.2678762Z           "complete": true,
2026-06-10T07:08:01.2679133Z           "evidence": [
2026-06-10T07:08:01.2679415Z             {
2026-06-10T07:08:01.2679833Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.2680120Z               "line": 236
2026-06-10T07:08:01.2680397Z             },
2026-06-10T07:08:01.2680678Z             {
2026-06-10T07:08:01.2681093Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-10T07:08:01.2681397Z               "line": 349
2026-06-10T07:08:01.2681672Z             },
2026-06-10T07:08:01.2681944Z             {
2026-06-10T07:08:01.2682362Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2682649Z               "line": 194
2026-06-10T07:08:01.2682930Z             },
2026-06-10T07:08:01.2683221Z             {
2026-06-10T07:08:01.2683617Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2683902Z               "line": 216
2026-06-10T07:08:01.2684182Z             },
2026-06-10T07:08:01.2684453Z             {
2026-06-10T07:08:01.2684849Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2685139Z               "line": 230
2026-06-10T07:08:01.2685421Z             },
2026-06-10T07:08:01.2685689Z             {
2026-06-10T07:08:01.2686088Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2686375Z               "line": 242
2026-06-10T07:08:01.2686662Z             },
2026-06-10T07:08:01.2686936Z             {
2026-06-10T07:08:01.2687342Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2687633Z               "line": 256
2026-06-10T07:08:01.2687914Z             },
2026-06-10T07:08:01.2688190Z             {
2026-06-10T07:08:01.2688587Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2688878Z               "line": 270
2026-06-10T07:08:01.2689228Z             },
2026-06-10T07:08:01.2689507Z             {
2026-06-10T07:08:01.2689904Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2690185Z               "line": 277
2026-06-10T07:08:01.2690462Z             },
2026-06-10T07:08:01.2690738Z             {
2026-06-10T07:08:01.2691130Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-10T07:08:01.2691416Z               "line": 295
2026-06-10T07:08:01.2691692Z             },
2026-06-10T07:08:01.2691967Z             {
2026-06-10T07:08:01.2692360Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2692656Z               "line": 968
2026-06-10T07:08:01.2692932Z             },
2026-06-10T07:08:01.2693209Z             {
2026-06-10T07:08:01.2693610Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2693895Z               "line": 1051
2026-06-10T07:08:01.2694177Z             },
2026-06-10T07:08:01.2694448Z             {
2026-06-10T07:08:01.2694845Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2695146Z               "line": 1121
2026-06-10T07:08:01.2695433Z             },
2026-06-10T07:08:01.2695719Z             {
2026-06-10T07:08:01.2696109Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2696401Z               "line": 1182
2026-06-10T07:08:01.2696676Z             },
2026-06-10T07:08:01.2696954Z             {
2026-06-10T07:08:01.2697348Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2697748Z               "line": 1238
2026-06-10T07:08:01.2700911Z             },
2026-06-10T07:08:01.2703398Z             {
2026-06-10T07:08:01.2703816Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2704108Z               "line": 1457
2026-06-10T07:08:01.2704383Z             }
2026-06-10T07:08:01.2704814Z           ]
2026-06-10T07:08:01.2705098Z         }
2026-06-10T07:08:01.2705382Z       }
2026-06-10T07:08:01.2705659Z     },
2026-06-10T07:08:01.2705926Z     {
2026-06-10T07:08:01.2706217Z       "id": "REQ-PAIR-2",
2026-06-10T07:08:01.2706651Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-10T07:08:01.2706951Z       "requiredStages": [],
2026-06-10T07:08:01.2707227Z       "stages": {
2026-06-10T07:08:01.2707500Z         "doc": {
2026-06-10T07:08:01.2707791Z           "complete": false,
2026-06-10T07:08:01.2708080Z           "evidence": []
2026-06-10T07:08:01.2708342Z         },
2026-06-10T07:08:01.2708638Z         "impl": {
2026-06-10T07:08:01.2709044Z           "complete": false,
2026-06-10T07:08:01.2709359Z           "evidence": []
2026-06-10T07:08:01.2709659Z         },
2026-06-10T07:08:01.2709964Z         "int": {
2026-06-10T07:08:01.2710272Z           "complete": false,
2026-06-10T07:08:01.2710570Z           "evidence": []
2026-06-10T07:08:01.2710865Z         },
2026-06-10T07:08:01.2711161Z         "unit": {
2026-06-10T07:08:01.2711481Z           "complete": false,
2026-06-10T07:08:01.2711786Z           "evidence": []
2026-06-10T07:08:01.2712058Z         }
2026-06-10T07:08:01.2712349Z       }
2026-06-10T07:08:01.2712640Z     },
2026-06-10T07:08:01.2712932Z     {
2026-06-10T07:08:01.2713235Z       "id": "REQ-PAIR-3",
2026-06-10T07:08:01.2713700Z       "title": "Fetch current pairing code from any paired node",
2026-06-10T07:08:01.2714014Z       "requiredStages": [
2026-06-10T07:08:01.2714301Z         "impl",
2026-06-10T07:08:01.2714601Z         "unit"
2026-06-10T07:08:01.2714892Z       ],
2026-06-10T07:08:01.2715198Z       "stages": {
2026-06-10T07:08:01.2715498Z         "doc": {
2026-06-10T07:08:01.2715816Z           "complete": false,
2026-06-10T07:08:01.2716104Z           "evidence": []
2026-06-10T07:08:01.2716386Z         },
2026-06-10T07:08:01.2716671Z         "impl": {
2026-06-10T07:08:01.2716991Z           "complete": true,
2026-06-10T07:08:01.2717311Z           "evidence": [
2026-06-10T07:08:01.2717606Z             {
2026-06-10T07:08:01.2717975Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2718280Z               "line": 2315
2026-06-10T07:08:01.2718582Z             },
2026-06-10T07:08:01.2718888Z             {
2026-06-10T07:08:01.2719304Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2719618Z               "line": 2384
2026-06-10T07:08:01.2719909Z             },
2026-06-10T07:08:01.2720215Z             {
2026-06-10T07:08:01.2720587Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2720890Z               "line": 2620
2026-06-10T07:08:01.2721178Z             }
2026-06-10T07:08:01.2721459Z           ]
2026-06-10T07:08:01.2721750Z         },
2026-06-10T07:08:01.2722026Z         "int": {
2026-06-10T07:08:01.2722365Z           "complete": false,
2026-06-10T07:08:01.2722666Z           "evidence": []
2026-06-10T07:08:01.2722942Z         },
2026-06-10T07:08:01.2723233Z         "unit": {
2026-06-10T07:08:01.2723538Z           "complete": true,
2026-06-10T07:08:01.2723837Z           "evidence": [
2026-06-10T07:08:01.2724108Z             {
2026-06-10T07:08:01.2724446Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2724742Z               "line": 6914
2026-06-10T07:08:01.2725018Z             },
2026-06-10T07:08:01.2725304Z             {
2026-06-10T07:08:01.2725629Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2725924Z               "line": 7129
2026-06-10T07:08:01.2726199Z             },
2026-06-10T07:08:01.2726484Z             {
2026-06-10T07:08:01.2726817Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2727094Z               "line": 7703
2026-06-10T07:08:01.2727517Z             },
2026-06-10T07:08:01.2727790Z             {
2026-06-10T07:08:01.2728123Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2728415Z               "line": 7722
2026-06-10T07:08:01.2728700Z             },
2026-06-10T07:08:01.2729066Z             {
2026-06-10T07:08:01.2729491Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2729786Z               "line": 7746
2026-06-10T07:08:01.2730067Z             },
2026-06-10T07:08:01.2730344Z             {
2026-06-10T07:08:01.2730673Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2730964Z               "line": 7765
2026-06-10T07:08:01.2731250Z             },
2026-06-10T07:08:01.2731525Z             {
2026-06-10T07:08:01.2731854Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2732139Z               "line": 7778
2026-06-10T07:08:01.2732421Z             },
2026-06-10T07:08:01.2732697Z             {
2026-06-10T07:08:01.2733084Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2733380Z               "line": 7787
2026-06-10T07:08:01.2733656Z             }
2026-06-10T07:08:01.2733937Z           ]
2026-06-10T07:08:01.2734207Z         }
2026-06-10T07:08:01.2734524Z       }
2026-06-10T07:08:01.2734796Z     },
2026-06-10T07:08:01.2735069Z     {
2026-06-10T07:08:01.2735393Z       "id": "REQ-PAIR-4",
2026-06-10T07:08:01.2735783Z       "title": "Subnet naming on first pairing",
2026-06-10T07:08:01.2736088Z       "requiredStages": [
2026-06-10T07:08:01.2736369Z         "impl",
2026-06-10T07:08:01.2736647Z         "unit"
2026-06-10T07:08:01.2736917Z       ],
2026-06-10T07:08:01.2737201Z       "stages": {
2026-06-10T07:08:01.2737482Z         "doc": {
2026-06-10T07:08:01.2737777Z           "complete": false,
2026-06-10T07:08:01.2738072Z           "evidence": []
2026-06-10T07:08:01.2738387Z         },
2026-06-10T07:08:01.2738674Z         "impl": {
2026-06-10T07:08:01.2739056Z           "complete": true,
2026-06-10T07:08:01.2739351Z           "evidence": [
2026-06-10T07:08:01.2739641Z             {
2026-06-10T07:08:01.2740018Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-10T07:08:01.2740313Z               "line": 174
2026-06-10T07:08:01.2740585Z             }
2026-06-10T07:08:01.2740862Z           ]
2026-06-10T07:08:01.2741134Z         },
2026-06-10T07:08:01.2741411Z         "int": {
2026-06-10T07:08:01.2741712Z           "complete": false,
2026-06-10T07:08:01.2742000Z           "evidence": []
2026-06-10T07:08:01.2742279Z         },
2026-06-10T07:08:01.2742560Z         "unit": {
2026-06-10T07:08:01.2742856Z           "complete": true,
2026-06-10T07:08:01.2743137Z           "evidence": [
2026-06-10T07:08:01.2743429Z             {
2026-06-10T07:08:01.2743838Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2744124Z               "line": 1294
2026-06-10T07:08:01.2744406Z             }
2026-06-10T07:08:01.2744677Z           ]
2026-06-10T07:08:01.2744957Z         }
2026-06-10T07:08:01.2745238Z       }
2026-06-10T07:08:01.2745514Z     },
2026-06-10T07:08:01.2745795Z     {
2026-06-10T07:08:01.2746095Z       "id": "REQ-PAIR-5",
2026-06-10T07:08:01.2747035Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-10T07:08:01.2747334Z       "requiredStages": [
2026-06-10T07:08:01.2747618Z         "impl",
2026-06-10T07:08:01.2747899Z         "unit",
2026-06-10T07:08:01.2748186Z         "int"
2026-06-10T07:08:01.2748462Z       ],
2026-06-10T07:08:01.2748753Z       "stages": {
2026-06-10T07:08:01.2749101Z         "doc": {
2026-06-10T07:08:01.2749397Z           "complete": false,
2026-06-10T07:08:01.2749693Z           "evidence": []
2026-06-10T07:08:01.2749965Z         },
2026-06-10T07:08:01.2750239Z         "impl": {
2026-06-10T07:08:01.2750529Z           "complete": true,
2026-06-10T07:08:01.2750816Z           "evidence": [
2026-06-10T07:08:01.2751098Z             {
2026-06-10T07:08:01.2751497Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2751905Z               "line": 44
2026-06-10T07:08:01.2752180Z             },
2026-06-10T07:08:01.2752460Z             {
2026-06-10T07:08:01.2752864Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2753159Z               "line": 96
2026-06-10T07:08:01.2753435Z             },
2026-06-10T07:08:01.2753827Z             {
2026-06-10T07:08:01.2754246Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2754538Z               "line": 107
2026-06-10T07:08:01.2754815Z             },
2026-06-10T07:08:01.2755096Z             {
2026-06-10T07:08:01.2755494Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2755841Z               "line": 124
2026-06-10T07:08:01.2756108Z             },
2026-06-10T07:08:01.2756389Z             {
2026-06-10T07:08:01.2756789Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2757076Z               "line": 155
2026-06-10T07:08:01.2757410Z             },
2026-06-10T07:08:01.2757687Z             {
2026-06-10T07:08:01.2758084Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2758369Z               "line": 195
2026-06-10T07:08:01.2758651Z             },
2026-06-10T07:08:01.2758927Z             {
2026-06-10T07:08:01.2759408Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2759690Z               "line": 251
2026-06-10T07:08:01.2759967Z             },
2026-06-10T07:08:01.2760239Z             {
2026-06-10T07:08:01.2760676Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2760972Z               "line": 33
2026-06-10T07:08:01.2761253Z             },
2026-06-10T07:08:01.2761525Z             {
2026-06-10T07:08:01.2761967Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2762254Z               "line": 45
2026-06-10T07:08:01.2762540Z             },
2026-06-10T07:08:01.2762813Z             {
2026-06-10T07:08:01.2763266Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2763553Z               "line": 59
2026-06-10T07:08:01.2763834Z             },
2026-06-10T07:08:01.2764101Z             {
2026-06-10T07:08:01.2764496Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2764797Z               "line": 376
2026-06-10T07:08:01.2765069Z             }
2026-06-10T07:08:01.2765351Z           ]
2026-06-10T07:08:01.2765632Z         },
2026-06-10T07:08:01.2765911Z         "int": {
2026-06-10T07:08:01.2766219Z           "complete": true,
2026-06-10T07:08:01.2766514Z           "evidence": [
2026-06-10T07:08:01.2766787Z             {
2026-06-10T07:08:01.2767172Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2767463Z               "line": 792
2026-06-10T07:08:01.2767744Z             },
2026-06-10T07:08:01.2768021Z             {
2026-06-10T07:08:01.2768431Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2768724Z               "line": 342
2026-06-10T07:08:01.2769081Z             }
2026-06-10T07:08:01.2769353Z           ]
2026-06-10T07:08:01.2769630Z         },
2026-06-10T07:08:01.2769911Z         "unit": {
2026-06-10T07:08:01.2770207Z           "complete": true,
2026-06-10T07:08:01.2770504Z           "evidence": [
2026-06-10T07:08:01.2770785Z             {
2026-06-10T07:08:01.2771185Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2771474Z               "line": 293
2026-06-10T07:08:01.2771756Z             },
2026-06-10T07:08:01.2772037Z             {
2026-06-10T07:08:01.2772433Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2772729Z               "line": 304
2026-06-10T07:08:01.2773000Z             },
2026-06-10T07:08:01.2773281Z             {
2026-06-10T07:08:01.2773671Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.2773959Z               "line": 406
2026-06-10T07:08:01.2774356Z             },
2026-06-10T07:08:01.2774633Z             {
2026-06-10T07:08:01.2775075Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2775357Z               "line": 72
2026-06-10T07:08:01.2775639Z             },
2026-06-10T07:08:01.2775911Z             {
2026-06-10T07:08:01.2776466Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2776764Z               "line": 82
2026-06-10T07:08:01.2777041Z             },
2026-06-10T07:08:01.2777314Z             {
2026-06-10T07:08:01.2777746Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2778037Z               "line": 100
2026-06-10T07:08:01.2778319Z             },
2026-06-10T07:08:01.2778591Z             {
2026-06-10T07:08:01.2779110Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2779418Z               "line": 110
2026-06-10T07:08:01.2779708Z             },
2026-06-10T07:08:01.2779984Z             {
2026-06-10T07:08:01.2780424Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-10T07:08:01.2780701Z               "line": 125
2026-06-10T07:08:01.2780972Z             },
2026-06-10T07:08:01.2781253Z             {
2026-06-10T07:08:01.2781645Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2781938Z               "line": 1044
2026-06-10T07:08:01.2782210Z             },
2026-06-10T07:08:01.2782487Z             {
2026-06-10T07:08:01.2782877Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2783159Z               "line": 1110
2026-06-10T07:08:01.2783431Z             },
2026-06-10T07:08:01.2783698Z             {
2026-06-10T07:08:01.2784089Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.2784377Z               "line": 1357
2026-06-10T07:08:01.2784706Z             }
2026-06-10T07:08:01.2785139Z           ]
2026-06-10T07:08:01.2785420Z         }
2026-06-10T07:08:01.2785726Z       }
2026-06-10T07:08:01.2786003Z     },
2026-06-10T07:08:01.2786270Z     {
2026-06-10T07:08:01.2786566Z       "id": "REQ-PAIR-6",
2026-06-10T07:08:01.2787377Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-10T07:08:01.2787682Z       "requiredStages": [
2026-06-10T07:08:01.2787954Z         "impl",
2026-06-10T07:08:01.2788245Z         "unit"
2026-06-10T07:08:01.2788517Z       ],
2026-06-10T07:08:01.2788799Z       "stages": {
2026-06-10T07:08:01.2789165Z         "doc": {
2026-06-10T07:08:01.2789480Z           "complete": false,
2026-06-10T07:08:01.2789769Z           "evidence": []
2026-06-10T07:08:01.2790050Z         },
2026-06-10T07:08:01.2790341Z         "impl": {
2026-06-10T07:08:01.2790636Z           "complete": true,
2026-06-10T07:08:01.2790922Z           "evidence": [
2026-06-10T07:08:01.2791198Z             {
2026-06-10T07:08:01.2791537Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2791842Z               "line": 2384
2026-06-10T07:08:01.2792118Z             },
2026-06-10T07:08:01.2792408Z             {
2026-06-10T07:08:01.2792742Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2793033Z               "line": 2620
2026-06-10T07:08:01.2793310Z             },
2026-06-10T07:08:01.2793591Z             {
2026-06-10T07:08:01.2793958Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.2794249Z               "line": 18
2026-06-10T07:08:01.2794531Z             },
2026-06-10T07:08:01.2794806Z             {
2026-06-10T07:08:01.2795161Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.2795447Z               "line": 49
2026-06-10T07:08:01.2795728Z             },
2026-06-10T07:08:01.2796004Z             {
2026-06-10T07:08:01.2796348Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.2796643Z               "line": 163
2026-06-10T07:08:01.2796920Z             }
2026-06-10T07:08:01.2797201Z           ]
2026-06-10T07:08:01.2797473Z         },
2026-06-10T07:08:01.2797884Z         "int": {
2026-06-10T07:08:01.2798190Z           "complete": false,
2026-06-10T07:08:01.2798476Z           "evidence": []
2026-06-10T07:08:01.2798758Z         },
2026-06-10T07:08:01.2799120Z         "unit": {
2026-06-10T07:08:01.2799424Z           "complete": true,
2026-06-10T07:08:01.2799716Z           "evidence": [
2026-06-10T07:08:01.2800101Z             {
2026-06-10T07:08:01.2800437Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2800728Z               "line": 7800
2026-06-10T07:08:01.2801006Z             },
2026-06-10T07:08:01.2801277Z             {
2026-06-10T07:08:01.2801611Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.2801897Z               "line": 7817
2026-06-10T07:08:01.2802184Z             },
2026-06-10T07:08:01.2802460Z             {
2026-06-10T07:08:01.2802813Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.2803102Z               "line": 228
2026-06-10T07:08:01.2803378Z             },
2026-06-10T07:08:01.2803664Z             {
2026-06-10T07:08:01.2804017Z               "path": "crates/spt/src/elevation.rs",
2026-06-10T07:08:01.2804303Z               "line": 237
2026-06-10T07:08:01.2804594Z             }
2026-06-10T07:08:01.2804866Z           ]
2026-06-10T07:08:01.2805147Z         }
2026-06-10T07:08:01.2805418Z       }
2026-06-10T07:08:01.2805698Z     },
2026-06-10T07:08:01.2805969Z     {
2026-06-10T07:08:01.2806269Z       "id": "REQ-PAIR-7",
2026-06-10T07:08:01.2806770Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-10T07:08:01.2807075Z       "requiredStages": [],
2026-06-10T07:08:01.2807361Z       "stages": {
2026-06-10T07:08:01.2807634Z         "doc": {
2026-06-10T07:08:01.2807930Z           "complete": false,
2026-06-10T07:08:01.2808223Z           "evidence": []
2026-06-10T07:08:01.2808497Z         },
2026-06-10T07:08:01.2808778Z         "impl": {
2026-06-10T07:08:01.2809136Z           "complete": false,
2026-06-10T07:08:01.2809436Z           "evidence": []
2026-06-10T07:08:01.2809723Z         },
2026-06-10T07:08:01.2810004Z         "int": {
2026-06-10T07:08:01.2810300Z           "complete": false,
2026-06-10T07:08:01.2810596Z           "evidence": []
2026-06-10T07:08:01.2810875Z         },
2026-06-10T07:08:01.2811160Z         "unit": {
2026-06-10T07:08:01.2811461Z           "complete": false,
2026-06-10T07:08:01.2811761Z           "evidence": []
2026-06-10T07:08:01.2812042Z         }
2026-06-10T07:08:01.2812313Z       }
2026-06-10T07:08:01.2812585Z     },
2026-06-10T07:08:01.2812866Z     {
2026-06-10T07:08:01.2813162Z       "id": "REQ-PAIR-8",
2026-06-10T07:08:01.2817159Z       "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-10T07:08:01.2817536Z       "requiredStages": [
2026-06-10T07:08:01.2817817Z         "impl",
2026-06-10T07:08:01.2818113Z         "unit"
2026-06-10T07:08:01.2818384Z       ],
2026-06-10T07:08:01.2818674Z       "stages": {
2026-06-10T07:08:01.2819043Z         "doc": {
2026-06-10T07:08:01.2819357Z           "complete": false,
2026-06-10T07:08:01.2819681Z           "evidence": []
2026-06-10T07:08:01.2819959Z         },
2026-06-10T07:08:01.2820245Z         "impl": {
2026-06-10T07:08:01.2820540Z           "complete": true,
2026-06-10T07:08:01.2820831Z           "evidence": [
2026-06-10T07:08:01.2821123Z             {
2026-06-10T07:08:01.2821510Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.2821792Z               "line": 577
2026-06-10T07:08:01.2822069Z             },
2026-06-10T07:08:01.2822350Z             {
2026-06-10T07:08:01.2822731Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T07:08:01.2823027Z               "line": 22
2026-06-10T07:08:01.2823446Z             },
2026-06-10T07:08:01.2823722Z             {
2026-06-10T07:08:01.2824117Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T07:08:01.2824403Z               "line": 76
2026-06-10T07:08:01.2824671Z             },
2026-06-10T07:08:01.2824943Z             {
2026-06-10T07:08:01.2825438Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T07:08:01.2825724Z               "line": 127
2026-06-10T07:08:01.2826005Z             }
2026-06-10T07:08:01.2826277Z           ]
2026-06-10T07:08:01.2826566Z         },
2026-06-10T07:08:01.2826870Z         "int": {
2026-06-10T07:08:01.2827157Z           "complete": false,
2026-06-10T07:08:01.2827462Z           "evidence": []
2026-06-10T07:08:01.2827753Z         },
2026-06-10T07:08:01.2828038Z         "unit": {
2026-06-10T07:08:01.2828338Z           "complete": true,
2026-06-10T07:08:01.2828615Z           "evidence": [
2026-06-10T07:08:01.2828887Z             {
2026-06-10T07:08:01.2829377Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T07:08:01.2829660Z               "line": 183
2026-06-10T07:08:01.2829932Z             },
2026-06-10T07:08:01.2830209Z             {
2026-06-10T07:08:01.2830600Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T07:08:01.2830886Z               "line": 195
2026-06-10T07:08:01.2831177Z             },
2026-06-10T07:08:01.2831453Z             {
2026-06-10T07:08:01.2831843Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T07:08:01.2832136Z               "line": 211
2026-06-10T07:08:01.2832446Z             },
2026-06-10T07:08:01.2832719Z             {
2026-06-10T07:08:01.2833099Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-10T07:08:01.2833381Z               "line": 227
2026-06-10T07:08:01.2833648Z             }
2026-06-10T07:08:01.2833925Z           ]
2026-06-10T07:08:01.2834193Z         }
2026-06-10T07:08:01.2834470Z       }
2026-06-10T07:08:01.2834753Z     },
2026-06-10T07:08:01.2835020Z     {
2026-06-10T07:08:01.2835325Z       "id": "REQ-PRES-1",
2026-06-10T07:08:01.2839291Z       "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-10T07:08:01.2839639Z       "requiredStages": [
2026-06-10T07:08:01.2839927Z         "impl",
2026-06-10T07:08:01.2840212Z         "unit",
2026-06-10T07:08:01.2840492Z         "int"
2026-06-10T07:08:01.2840764Z       ],
2026-06-10T07:08:01.2841050Z       "stages": {
2026-06-10T07:08:01.2841332Z         "doc": {
2026-06-10T07:08:01.2841651Z           "complete": true,
2026-06-10T07:08:01.2841947Z           "evidence": [
2026-06-10T07:08:01.2842238Z             {
2026-06-10T07:08:01.2842565Z               "path": "docs/DEFERRED.md",
2026-06-10T07:08:01.2842850Z               "line": 11
2026-06-10T07:08:01.2843132Z             }
2026-06-10T07:08:01.2843407Z           ]
2026-06-10T07:08:01.2843683Z         },
2026-06-10T07:08:01.2843970Z         "impl": {
2026-06-10T07:08:01.2844266Z           "complete": true,
2026-06-10T07:08:01.2844585Z           "evidence": [
2026-06-10T07:08:01.2844857Z             {
2026-06-10T07:08:01.2845242Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.2845533Z               "line": 515
2026-06-10T07:08:01.2845820Z             },
2026-06-10T07:08:01.2846101Z             {
2026-06-10T07:08:01.2846473Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.2846763Z               "line": 567
2026-06-10T07:08:01.2847055Z             },
2026-06-10T07:08:01.2847336Z             {
2026-06-10T07:08:01.2847696Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2848123Z               "line": 181
2026-06-10T07:08:01.2848405Z             },
2026-06-10T07:08:01.2848682Z             {
2026-06-10T07:08:01.2849135Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2849420Z               "line": 207
2026-06-10T07:08:01.2849702Z             },
2026-06-10T07:08:01.2849982Z             {
2026-06-10T07:08:01.2850464Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2850757Z               "line": 28
2026-06-10T07:08:01.2851038Z             },
2026-06-10T07:08:01.2851319Z             {
2026-06-10T07:08:01.2851701Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2851997Z               "line": 105
2026-06-10T07:08:01.2852273Z             },
2026-06-10T07:08:01.2852549Z             {
2026-06-10T07:08:01.2852926Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2853214Z               "line": 161
2026-06-10T07:08:01.2853491Z             },
2026-06-10T07:08:01.2853772Z             {
2026-06-10T07:08:01.2854158Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2854454Z               "line": 180
2026-06-10T07:08:01.2854731Z             },
2026-06-10T07:08:01.2855012Z             {
2026-06-10T07:08:01.2855407Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.2855712Z               "line": 399
2026-06-10T07:08:01.2855989Z             },
2026-06-10T07:08:01.2856270Z             {
2026-06-10T07:08:01.2856652Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.2856942Z               "line": 289
2026-06-10T07:08:01.2857224Z             },
2026-06-10T07:08:01.2857501Z             {
2026-06-10T07:08:01.2857878Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.2858171Z               "line": 336
2026-06-10T07:08:01.2858474Z             },
2026-06-10T07:08:01.2858813Z             {
2026-06-10T07:08:01.2859322Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.2859656Z               "line": 362
2026-06-10T07:08:01.2859928Z             },
2026-06-10T07:08:01.2860204Z             {
2026-06-10T07:08:01.2860577Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.2860871Z               "line": 100
2026-06-10T07:08:01.2861147Z             }
2026-06-10T07:08:01.2861427Z           ]
2026-06-10T07:08:01.2861709Z         },
2026-06-10T07:08:01.2861985Z         "int": {
2026-06-10T07:08:01.2862290Z           "complete": true,
2026-06-10T07:08:01.2862581Z           "evidence": [
2026-06-10T07:08:01.2862872Z             {
2026-06-10T07:08:01.2863268Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.2863542Z               "line": 557
2026-06-10T07:08:01.2863826Z             },
2026-06-10T07:08:01.2864103Z             {
2026-06-10T07:08:01.2864494Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2864790Z               "line": 677
2026-06-10T07:08:01.2865066Z             },
2026-06-10T07:08:01.2865362Z             {
2026-06-10T07:08:01.2865734Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2866039Z               "line": 1070
2026-06-10T07:08:01.2866310Z             }
2026-06-10T07:08:01.2866592Z           ]
2026-06-10T07:08:01.2866859Z         },
2026-06-10T07:08:01.2867140Z         "unit": {
2026-06-10T07:08:01.2867451Z           "complete": true,
2026-06-10T07:08:01.2867746Z           "evidence": [
2026-06-10T07:08:01.2868027Z             {
2026-06-10T07:08:01.2868395Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.2868698Z               "line": 601
2026-06-10T07:08:01.2869097Z             },
2026-06-10T07:08:01.2869368Z             {
2026-06-10T07:08:01.2869745Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2870031Z               "line": 237
2026-06-10T07:08:01.2870313Z             },
2026-06-10T07:08:01.2870613Z             {
2026-06-10T07:08:01.2870995Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2871399Z               "line": 268
2026-06-10T07:08:01.2871679Z             },
2026-06-10T07:08:01.2871959Z             {
2026-06-10T07:08:01.2872335Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2872631Z               "line": 304
2026-06-10T07:08:01.2873002Z             },
2026-06-10T07:08:01.2873289Z             {
2026-06-10T07:08:01.2873665Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-10T07:08:01.2873951Z               "line": 335
2026-06-10T07:08:01.2874236Z             },
2026-06-10T07:08:01.2874511Z             {
2026-06-10T07:08:01.2874917Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.2875207Z               "line": 1135
2026-06-10T07:08:01.2875489Z             },
2026-06-10T07:08:01.2875771Z             {
2026-06-10T07:08:01.2876152Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.2876448Z               "line": 1112
2026-06-10T07:08:01.2876729Z             }
2026-06-10T07:08:01.2877008Z           ]
2026-06-10T07:08:01.2877279Z         }
2026-06-10T07:08:01.2877556Z       }
2026-06-10T07:08:01.2877833Z     },
2026-06-10T07:08:01.2878101Z     {
2026-06-10T07:08:01.2878401Z       "id": "REQ-REACH-1",
2026-06-10T07:08:01.2879292Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-10T07:08:01.2879652Z       "requiredStages": [
2026-06-10T07:08:01.2879928Z         "impl",
2026-06-10T07:08:01.2880214Z         "unit",
2026-06-10T07:08:01.2880495Z         "int"
2026-06-10T07:08:01.2880757Z       ],
2026-06-10T07:08:01.2881044Z       "stages": {
2026-06-10T07:08:01.2881320Z         "doc": {
2026-06-10T07:08:01.2881621Z           "complete": false,
2026-06-10T07:08:01.2881912Z           "evidence": []
2026-06-10T07:08:01.2882191Z         },
2026-06-10T07:08:01.2882471Z         "impl": {
2026-06-10T07:08:01.2882786Z           "complete": true,
2026-06-10T07:08:01.2883081Z           "evidence": [
2026-06-10T07:08:01.2883367Z             {
2026-06-10T07:08:01.2883740Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-10T07:08:01.2884030Z               "line": 140
2026-06-10T07:08:01.2884311Z             },
2026-06-10T07:08:01.2884587Z             {
2026-06-10T07:08:01.2884942Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T07:08:01.2885237Z               "line": 76
2026-06-10T07:08:01.2885515Z             },
2026-06-10T07:08:01.2885796Z             {
2026-06-10T07:08:01.2886154Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T07:08:01.2886449Z               "line": 222
2026-06-10T07:08:01.2886735Z             },
2026-06-10T07:08:01.2887073Z             {
2026-06-10T07:08:01.2887435Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T07:08:01.2887722Z               "line": 422
2026-06-10T07:08:01.2888017Z             },
2026-06-10T07:08:01.2888298Z             {
2026-06-10T07:08:01.2888670Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T07:08:01.2889028Z               "line": 529
2026-06-10T07:08:01.2889299Z             },
2026-06-10T07:08:01.2889577Z             {
2026-06-10T07:08:01.2889931Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T07:08:01.2890222Z               "line": 39
2026-06-10T07:08:01.2890493Z             },
2026-06-10T07:08:01.2890784Z             {
2026-06-10T07:08:01.2891147Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.2891438Z               "line": 229
2026-06-10T07:08:01.2891719Z             },
2026-06-10T07:08:01.2891994Z             {
2026-06-10T07:08:01.2892344Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T07:08:01.2892632Z               "line": 88
2026-06-10T07:08:01.2892916Z             },
2026-06-10T07:08:01.2893198Z             {
2026-06-10T07:08:01.2893546Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T07:08:01.2893837Z               "line": 98
2026-06-10T07:08:01.2894109Z             },
2026-06-10T07:08:01.2894519Z             {
2026-06-10T07:08:01.2894896Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.2895171Z               "line": 210
2026-06-10T07:08:01.2895450Z             }
2026-06-10T07:08:01.2895713Z           ]
2026-06-10T07:08:01.2895989Z         },
2026-06-10T07:08:01.2896271Z         "int": {
2026-06-10T07:08:01.2896665Z           "complete": true,
2026-06-10T07:08:01.2896962Z           "evidence": [
2026-06-10T07:08:01.2897234Z             {
2026-06-10T07:08:01.2897629Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.2897925Z               "line": 415
2026-06-10T07:08:01.2898196Z             },
2026-06-10T07:08:01.2898477Z             {
2026-06-10T07:08:01.2898873Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.2899235Z               "line": 514
2026-06-10T07:08:01.2899512Z             },
2026-06-10T07:08:01.2899784Z             {
2026-06-10T07:08:01.2900165Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2900468Z               "line": 903
2026-06-10T07:08:01.2900739Z             },
2026-06-10T07:08:01.2901010Z             {
2026-06-10T07:08:01.2901406Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.2901698Z               "line": 1198
2026-06-10T07:08:01.2901978Z             }
2026-06-10T07:08:01.2902259Z           ]
2026-06-10T07:08:01.2902545Z         },
2026-06-10T07:08:01.2902822Z         "unit": {
2026-06-10T07:08:01.2903126Z           "complete": true,
2026-06-10T07:08:01.2903419Z           "evidence": [
2026-06-10T07:08:01.2903696Z             {
2026-06-10T07:08:01.2904059Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T07:08:01.2904350Z               "line": 639
2026-06-10T07:08:01.2904626Z             },
2026-06-10T07:08:01.2904903Z             {
2026-06-10T07:08:01.2905261Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-10T07:08:01.2905552Z               "line": 660
2026-06-10T07:08:01.2905826Z             },
2026-06-10T07:08:01.2906114Z             {
2026-06-10T07:08:01.2906492Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-10T07:08:01.2906788Z               "line": 391
2026-06-10T07:08:01.2907059Z             },
2026-06-10T07:08:01.2907345Z             {
2026-06-10T07:08:01.2907717Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-10T07:08:01.2908013Z               "line": 93
2026-06-10T07:08:01.2908298Z             },
2026-06-10T07:08:01.2908574Z             {
2026-06-10T07:08:01.2909023Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-10T07:08:01.2909308Z               "line": 224
2026-06-10T07:08:01.2909589Z             },
2026-06-10T07:08:01.2909875Z             {
2026-06-10T07:08:01.2910233Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T07:08:01.2910524Z               "line": 96
2026-06-10T07:08:01.2910800Z             },
2026-06-10T07:08:01.2911084Z             {
2026-06-10T07:08:01.2911441Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-10T07:08:01.2911746Z               "line": 146
2026-06-10T07:08:01.2915243Z             },
2026-06-10T07:08:01.2915539Z             {
2026-06-10T07:08:01.2915910Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.2916211Z               "line": 502
2026-06-10T07:08:01.2916490Z             },
2026-06-10T07:08:01.2916776Z             {
2026-06-10T07:08:01.2917133Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T07:08:01.2917419Z               "line": 118
2026-06-10T07:08:01.2917691Z             },
2026-06-10T07:08:01.2917958Z             {
2026-06-10T07:08:01.2918302Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-10T07:08:01.2918592Z               "line": 148
2026-06-10T07:08:01.2918868Z             },
2026-06-10T07:08:01.2919220Z             {
2026-06-10T07:08:01.2919597Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.2919883Z               "line": 602
2026-06-10T07:08:01.2920159Z             }
2026-06-10T07:08:01.2920599Z           ]
2026-06-10T07:08:01.2920871Z         }
2026-06-10T07:08:01.2921151Z       }
2026-06-10T07:08:01.2921427Z     },
2026-06-10T07:08:01.2921701Z     {
2026-06-10T07:08:01.2921996Z       "id": "REQ-REACH-2",
2026-06-10T07:08:01.2922484Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-10T07:08:01.2922884Z       "requiredStages": [],
2026-06-10T07:08:01.2923171Z       "stages": {
2026-06-10T07:08:01.2923443Z         "doc": {
2026-06-10T07:08:01.2923743Z           "complete": false,
2026-06-10T07:08:01.2924039Z           "evidence": []
2026-06-10T07:08:01.2924308Z         },
2026-06-10T07:08:01.2924592Z         "impl": {
2026-06-10T07:08:01.2924892Z           "complete": false,
2026-06-10T07:08:01.2925174Z           "evidence": []
2026-06-10T07:08:01.2925446Z         },
2026-06-10T07:08:01.2925732Z         "int": {
2026-06-10T07:08:01.2926075Z           "complete": false,
2026-06-10T07:08:01.2926357Z           "evidence": []
2026-06-10T07:08:01.2926668Z         },
2026-06-10T07:08:01.2926961Z         "unit": {
2026-06-10T07:08:01.2927268Z           "complete": false,
2026-06-10T07:08:01.2927555Z           "evidence": []
2026-06-10T07:08:01.2927835Z         }
2026-06-10T07:08:01.2928107Z       }
2026-06-10T07:08:01.2928374Z     },
2026-06-10T07:08:01.2928642Z     {
2026-06-10T07:08:01.2928924Z       "id": "REQ-REL-1",
2026-06-10T07:08:01.2930181Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-10T07:08:01.2930477Z       "requiredStages": [
2026-06-10T07:08:01.2930748Z         "doc",
2026-06-10T07:08:01.2931024Z         "impl"
2026-06-10T07:08:01.2931288Z       ],
2026-06-10T07:08:01.2931573Z       "stages": {
2026-06-10T07:08:01.2931851Z         "doc": {
2026-06-10T07:08:01.2932149Z           "complete": true,
2026-06-10T07:08:01.2932438Z           "evidence": [
2026-06-10T07:08:01.2932710Z             {
2026-06-10T07:08:01.2933368Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-10T07:08:01.2933659Z               "line": 3
2026-06-10T07:08:01.2933939Z             }
2026-06-10T07:08:01.2934264Z           ]
2026-06-10T07:08:01.2934540Z         },
2026-06-10T07:08:01.2934811Z         "impl": {
2026-06-10T07:08:01.2935119Z           "complete": true,
2026-06-10T07:08:01.2935433Z           "evidence": [
2026-06-10T07:08:01.2935711Z             {
2026-06-10T07:08:01.2936100Z               "path": ".github/workflows/docs-publish.yml",
2026-06-10T07:08:01.2936383Z               "line": 11
2026-06-10T07:08:01.2936659Z             },
2026-06-10T07:08:01.2936936Z             {
2026-06-10T07:08:01.2937275Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2937568Z               "line": 265
2026-06-10T07:08:01.2937838Z             }
2026-06-10T07:08:01.2938120Z           ]
2026-06-10T07:08:01.2938391Z         },
2026-06-10T07:08:01.2938672Z         "int": {
2026-06-10T07:08:01.2939059Z           "complete": false,
2026-06-10T07:08:01.2939349Z           "evidence": []
2026-06-10T07:08:01.2939640Z         },
2026-06-10T07:08:01.2939921Z         "unit": {
2026-06-10T07:08:01.2940221Z           "complete": false,
2026-06-10T07:08:01.2940513Z           "evidence": []
2026-06-10T07:08:01.2940799Z         }
2026-06-10T07:08:01.2941071Z       }
2026-06-10T07:08:01.2941347Z     },
2026-06-10T07:08:01.2941623Z     {
2026-06-10T07:08:01.2941909Z       "id": "REQ-REL-2",
2026-06-10T07:08:01.2943413Z       "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-10T07:08:01.2943718Z       "requiredStages": [
2026-06-10T07:08:01.2944000Z         "impl",
2026-06-10T07:08:01.2944276Z         "int"
2026-06-10T07:08:01.2944548Z       ],
2026-06-10T07:08:01.2944834Z       "stages": {
2026-06-10T07:08:01.2945100Z         "doc": {
2026-06-10T07:08:01.2945395Z           "complete": true,
2026-06-10T07:08:01.2945808Z           "evidence": [
2026-06-10T07:08:01.2946088Z             {
2026-06-10T07:08:01.2946432Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-10T07:08:01.2946713Z               "line": 6
2026-06-10T07:08:01.2947009Z             }
2026-06-10T07:08:01.2947276Z           ]
2026-06-10T07:08:01.2947543Z         },
2026-06-10T07:08:01.2947957Z         "impl": {
2026-06-10T07:08:01.2948312Z           "complete": true,
2026-06-10T07:08:01.2948598Z           "evidence": [
2026-06-10T07:08:01.2948870Z             {
2026-06-10T07:08:01.2949328Z               "path": ".github/workflows/release.yml",
2026-06-10T07:08:01.2949619Z               "line": 16
2026-06-10T07:08:01.2949895Z             },
2026-06-10T07:08:01.2950167Z             {
2026-06-10T07:08:01.2950506Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2950801Z               "line": 352
2026-06-10T07:08:01.2951068Z             },
2026-06-10T07:08:01.2951345Z             {
2026-06-10T07:08:01.2951693Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2951978Z               "line": 426
2026-06-10T07:08:01.2952256Z             },
2026-06-10T07:08:01.2952532Z             {
2026-06-10T07:08:01.2952866Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2953154Z               "line": 588
2026-06-10T07:08:01.2953443Z             },
2026-06-10T07:08:01.2953710Z             {
2026-06-10T07:08:01.2954048Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2954345Z               "line": 720
2026-06-10T07:08:01.2954617Z             }
2026-06-10T07:08:01.2954898Z           ]
2026-06-10T07:08:01.2955171Z         },
2026-06-10T07:08:01.2955433Z         "int": {
2026-06-10T07:08:01.2955728Z           "complete": true,
2026-06-10T07:08:01.2956021Z           "evidence": [
2026-06-10T07:08:01.2956281Z             {
2026-06-10T07:08:01.2956677Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-10T07:08:01.2956963Z               "line": 13
2026-06-10T07:08:01.2957235Z             }
2026-06-10T07:08:01.2957513Z           ]
2026-06-10T07:08:01.2957779Z         },
2026-06-10T07:08:01.2958057Z         "unit": {
2026-06-10T07:08:01.2958353Z           "complete": false,
2026-06-10T07:08:01.2958646Z           "evidence": []
2026-06-10T07:08:01.2958930Z         }
2026-06-10T07:08:01.2959273Z       }
2026-06-10T07:08:01.2959554Z     },
2026-06-10T07:08:01.2959826Z     {
2026-06-10T07:08:01.2960116Z       "id": "REQ-REL-3",
2026-06-10T07:08:01.2961465Z       "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-10T07:08:01.2961770Z       "requiredStages": [
2026-06-10T07:08:01.2962056Z         "impl",
2026-06-10T07:08:01.2962333Z         "unit"
2026-06-10T07:08:01.2962610Z       ],
2026-06-10T07:08:01.2962887Z       "stages": {
2026-06-10T07:08:01.2963168Z         "doc": {
2026-06-10T07:08:01.2963464Z           "complete": false,
2026-06-10T07:08:01.2963768Z           "evidence": []
2026-06-10T07:08:01.2964041Z         },
2026-06-10T07:08:01.2964322Z         "impl": {
2026-06-10T07:08:01.2964618Z           "complete": true,
2026-06-10T07:08:01.2964909Z           "evidence": [
2026-06-10T07:08:01.2965220Z             {
2026-06-10T07:08:01.2965625Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.2965940Z               "line": 237
2026-06-10T07:08:01.2966240Z             },
2026-06-10T07:08:01.2966506Z             {
2026-06-10T07:08:01.2966904Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.2967190Z               "line": 289
2026-06-10T07:08:01.2967466Z             },
2026-06-10T07:08:01.2967735Z             {
2026-06-10T07:08:01.2968078Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2968367Z               "line": 329
2026-06-10T07:08:01.2968631Z             },
2026-06-10T07:08:01.2968908Z             {
2026-06-10T07:08:01.2969310Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2969795Z               "line": 353
2026-06-10T07:08:01.2970066Z             },
2026-06-10T07:08:01.2970367Z             {
2026-06-10T07:08:01.2970701Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.2970991Z               "line": 394
2026-06-10T07:08:01.2971273Z             }
2026-06-10T07:08:01.2971645Z           ]
2026-06-10T07:08:01.2971930Z         },
2026-06-10T07:08:01.2972202Z         "int": {
2026-06-10T07:08:01.2972503Z           "complete": false,
2026-06-10T07:08:01.2972793Z           "evidence": []
2026-06-10T07:08:01.2973071Z         },
2026-06-10T07:08:01.2973352Z         "unit": {
2026-06-10T07:08:01.2973643Z           "complete": true,
2026-06-10T07:08:01.2973938Z           "evidence": [
2026-06-10T07:08:01.2974213Z             {
2026-06-10T07:08:01.2974587Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.2974878Z               "line": 992
2026-06-10T07:08:01.2975155Z             },
2026-06-10T07:08:01.2975441Z             {
2026-06-10T07:08:01.2975813Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.2976104Z               "line": 1051
2026-06-10T07:08:01.2976380Z             }
2026-06-10T07:08:01.2976638Z           ]
2026-06-10T07:08:01.2976911Z         }
2026-06-10T07:08:01.2977218Z       }
2026-06-10T07:08:01.2977607Z     },
2026-06-10T07:08:01.2977899Z     {
2026-06-10T07:08:01.2978214Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-10T07:08:01.2978805Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-10T07:08:01.2979290Z       "requiredStages": [
2026-06-10T07:08:01.2979576Z         "impl",
2026-06-10T07:08:01.2979851Z         "unit"
2026-06-10T07:08:01.2980127Z       ],
2026-06-10T07:08:01.2980408Z       "stages": {
2026-06-10T07:08:01.2980684Z         "doc": {
2026-06-10T07:08:01.2980984Z           "complete": false,
2026-06-10T07:08:01.2981280Z           "evidence": []
2026-06-10T07:08:01.2981551Z         },
2026-06-10T07:08:01.2981838Z         "impl": {
2026-06-10T07:08:01.2982138Z           "complete": true,
2026-06-10T07:08:01.2982425Z           "evidence": [
2026-06-10T07:08:01.2982696Z             {
2026-06-10T07:08:01.2983068Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.2983353Z               "line": 18
2026-06-10T07:08:01.2983636Z             },
2026-06-10T07:08:01.2983912Z             {
2026-06-10T07:08:01.2984275Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.2984561Z               "line": 35
2026-06-10T07:08:01.2984840Z             },
2026-06-10T07:08:01.2985113Z             {
2026-06-10T07:08:01.2985472Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.2985757Z               "line": 72
2026-06-10T07:08:01.2986044Z             }
2026-06-10T07:08:01.2986320Z           ]
2026-06-10T07:08:01.2986597Z         },
2026-06-10T07:08:01.2986883Z         "int": {
2026-06-10T07:08:01.2987208Z           "complete": false,
2026-06-10T07:08:01.2987504Z           "evidence": []
2026-06-10T07:08:01.2987788Z         },
2026-06-10T07:08:01.2988062Z         "unit": {
2026-06-10T07:08:01.2988362Z           "complete": true,
2026-06-10T07:08:01.2988653Z           "evidence": [
2026-06-10T07:08:01.2989026Z             {
2026-06-10T07:08:01.2989398Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.2989689Z               "line": 214
2026-06-10T07:08:01.2989971Z             },
2026-06-10T07:08:01.2990240Z             {
2026-06-10T07:08:01.2990620Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.2990905Z               "line": 231
2026-06-10T07:08:01.2991186Z             },
2026-06-10T07:08:01.2991468Z             {
2026-06-10T07:08:01.2991826Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.2992116Z               "line": 240
2026-06-10T07:08:01.2992388Z             }
2026-06-10T07:08:01.2992670Z           ]
2026-06-10T07:08:01.2992938Z         }
2026-06-10T07:08:01.2993346Z       }
2026-06-10T07:08:01.2993618Z     },
2026-06-10T07:08:01.2993890Z     {
2026-06-10T07:08:01.2994205Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-10T07:08:01.2994657Z       "title": "Hostable endpoint-types capability declaration",
2026-06-10T07:08:01.2994962Z       "requiredStages": [
2026-06-10T07:08:01.2995234Z         "impl",
2026-06-10T07:08:01.2995518Z         "unit"
2026-06-10T07:08:01.2995889Z       ],
2026-06-10T07:08:01.2996171Z       "stages": {
2026-06-10T07:08:01.2996862Z         "doc": {
2026-06-10T07:08:01.2997214Z           "complete": false,
2026-06-10T07:08:01.2997500Z           "evidence": []
2026-06-10T07:08:01.2997768Z         },
2026-06-10T07:08:01.2998059Z         "impl": {
2026-06-10T07:08:01.2998348Z           "complete": true,
2026-06-10T07:08:01.2998622Z           "evidence": [
2026-06-10T07:08:01.2998899Z             {
2026-06-10T07:08:01.2999362Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.2999653Z               "line": 404
2026-06-10T07:08:01.2999930Z             }
2026-06-10T07:08:01.3000196Z           ]
2026-06-10T07:08:01.3000472Z         },
2026-06-10T07:08:01.3000748Z         "int": {
2026-06-10T07:08:01.3001093Z           "complete": false,
2026-06-10T07:08:01.3001389Z           "evidence": []
2026-06-10T07:08:01.3001662Z         },
2026-06-10T07:08:01.3001938Z         "unit": {
2026-06-10T07:08:01.3002244Z           "complete": true,
2026-06-10T07:08:01.3002535Z           "evidence": [
2026-06-10T07:08:01.3002806Z             {
2026-06-10T07:08:01.3003183Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.3003470Z               "line": 641
2026-06-10T07:08:01.3003754Z             }
2026-06-10T07:08:01.3004025Z           ]
2026-06-10T07:08:01.3004297Z         }
2026-06-10T07:08:01.3004573Z       }
2026-06-10T07:08:01.3004884Z     },
2026-06-10T07:08:01.3005160Z     {
2026-06-10T07:08:01.3005488Z       "id": "REQ-SEAM-HISTORY",
2026-06-10T07:08:01.3006172Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-10T07:08:01.3006487Z       "requiredStages": [
2026-06-10T07:08:01.3006806Z         "impl",
2026-06-10T07:08:01.3007089Z         "unit",
2026-06-10T07:08:01.3007360Z         "int"
2026-06-10T07:08:01.3007633Z       ],
2026-06-10T07:08:01.3007904Z       "stages": {
2026-06-10T07:08:01.3008190Z         "doc": {
2026-06-10T07:08:01.3008490Z           "complete": false,
2026-06-10T07:08:01.3008784Z           "evidence": []
2026-06-10T07:08:01.3009129Z         },
2026-06-10T07:08:01.3009421Z         "impl": {
2026-06-10T07:08:01.3009721Z           "complete": true,
2026-06-10T07:08:01.3010007Z           "evidence": [
2026-06-10T07:08:01.3010279Z             {
2026-06-10T07:08:01.3010632Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T07:08:01.3010923Z               "line": 24
2026-06-10T07:08:01.3011196Z             },
2026-06-10T07:08:01.3011466Z             {
2026-06-10T07:08:01.3011836Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T07:08:01.3012127Z               "line": 22
2026-06-10T07:08:01.3012399Z             }
2026-06-10T07:08:01.3012674Z           ]
2026-06-10T07:08:01.3012950Z         },
2026-06-10T07:08:01.3013228Z         "int": {
2026-06-10T07:08:01.3013528Z           "complete": true,
2026-06-10T07:08:01.3013828Z           "evidence": [
2026-06-10T07:08:01.3014105Z             {
2026-06-10T07:08:01.3014485Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:01.3014777Z               "line": 256
2026-06-10T07:08:01.3015057Z             }
2026-06-10T07:08:01.3015368Z           ]
2026-06-10T07:08:01.3015983Z         },
2026-06-10T07:08:01.3016270Z         "unit": {
2026-06-10T07:08:01.3016577Z           "complete": true,
2026-06-10T07:08:01.3016890Z           "evidence": [
2026-06-10T07:08:01.3017176Z             {
2026-06-10T07:08:01.3017582Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T07:08:01.3017878Z               "line": 167
2026-06-10T07:08:01.3018154Z             },
2026-06-10T07:08:01.3018573Z             {
2026-06-10T07:08:01.3018916Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T07:08:01.3019307Z               "line": 196
2026-06-10T07:08:01.3019580Z             },
2026-06-10T07:08:01.3019863Z             {
2026-06-10T07:08:01.3020215Z               "path": "crates/spt-live/src/echo.rs",
2026-06-10T07:08:01.3020496Z               "line": 216
2026-06-10T07:08:01.3020911Z             },
2026-06-10T07:08:01.3021192Z             {
2026-06-10T07:08:01.3021560Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T07:08:01.3021850Z               "line": 199
2026-06-10T07:08:01.3022133Z             },
2026-06-10T07:08:01.3022415Z             {
2026-06-10T07:08:01.3022777Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T07:08:01.3023063Z               "line": 219
2026-06-10T07:08:01.3023340Z             },
2026-06-10T07:08:01.3023617Z             {
2026-06-10T07:08:01.3023974Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T07:08:01.3024275Z               "line": 244
2026-06-10T07:08:01.3024566Z             },
2026-06-10T07:08:01.3024840Z             {
2026-06-10T07:08:01.3025199Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T07:08:01.3025484Z               "line": 269
2026-06-10T07:08:01.3025755Z             },
2026-06-10T07:08:01.3026028Z             {
2026-06-10T07:08:01.3026399Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T07:08:01.3026690Z               "line": 290
2026-06-10T07:08:01.3026966Z             },
2026-06-10T07:08:01.3027255Z             {
2026-06-10T07:08:01.3027612Z               "path": "crates/spt-live/src/history.rs",
2026-06-10T07:08:01.3027903Z               "line": 317
2026-06-10T07:08:01.3028170Z             }
2026-06-10T07:08:01.3028448Z           ]
2026-06-10T07:08:01.3028719Z         }
2026-06-10T07:08:01.3029180Z       }
2026-06-10T07:08:01.3029453Z     },
2026-06-10T07:08:01.3029721Z     {
2026-06-10T07:08:01.3030024Z       "id": "REQ-SEAM-INJECT",
2026-06-10T07:08:01.3030527Z       "title": "inject-input methods configurable per activity-state",
2026-06-10T07:08:01.3030817Z       "requiredStages": [
2026-06-10T07:08:01.3031090Z         "impl",
2026-06-10T07:08:01.3031361Z         "unit"
2026-06-10T07:08:01.3031639Z       ],
2026-06-10T07:08:01.3031901Z       "stages": {
2026-06-10T07:08:01.3032187Z         "doc": {
2026-06-10T07:08:01.3032528Z           "complete": false,
2026-06-10T07:08:01.3032826Z           "evidence": []
2026-06-10T07:08:01.3033107Z         },
2026-06-10T07:08:01.3033379Z         "impl": {
2026-06-10T07:08:01.3033680Z           "complete": true,
2026-06-10T07:08:01.3033966Z           "evidence": [
2026-06-10T07:08:01.3034238Z             {
2026-06-10T07:08:01.3034605Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.3034891Z               "line": 19
2026-06-10T07:08:01.3035169Z             },
2026-06-10T07:08:01.3035444Z             {
2026-06-10T07:08:01.3035811Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.3036102Z               "line": 111
2026-06-10T07:08:01.3036378Z             }
2026-06-10T07:08:01.3036649Z           ]
2026-06-10T07:08:01.3036931Z         },
2026-06-10T07:08:01.3037212Z         "int": {
2026-06-10T07:08:01.3037498Z           "complete": false,
2026-06-10T07:08:01.3037792Z           "evidence": []
2026-06-10T07:08:01.3038068Z         },
2026-06-10T07:08:01.3038344Z         "unit": {
2026-06-10T07:08:01.3038635Z           "complete": true,
2026-06-10T07:08:01.3038921Z           "evidence": [
2026-06-10T07:08:01.3039293Z             {
2026-06-10T07:08:01.3039647Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.3039947Z               "line": 320
2026-06-10T07:08:01.3040224Z             },
2026-06-10T07:08:01.3040497Z             {
2026-06-10T07:08:01.3040849Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.3041139Z               "line": 340
2026-06-10T07:08:01.3041416Z             }
2026-06-10T07:08:01.3041678Z           ]
2026-06-10T07:08:01.3042064Z         }
2026-06-10T07:08:01.3042345Z       }
2026-06-10T07:08:01.3042607Z     },
2026-06-10T07:08:01.3042880Z     {
2026-06-10T07:08:01.3043207Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-10T07:08:01.3043620Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-10T07:08:01.3043921Z       "requiredStages": [
2026-06-10T07:08:01.3044316Z         "impl",
2026-06-10T07:08:01.3044593Z         "unit"
2026-06-10T07:08:01.3044870Z       ],
2026-06-10T07:08:01.3045146Z       "stages": {
2026-06-10T07:08:01.3045428Z         "doc": {
2026-06-10T07:08:01.3045729Z           "complete": false,
2026-06-10T07:08:01.3046018Z           "evidence": []
2026-06-10T07:08:01.3046299Z         },
2026-06-10T07:08:01.3046580Z         "impl": {
2026-06-10T07:08:01.3046875Z           "complete": true,
2026-06-10T07:08:01.3047162Z           "evidence": [
2026-06-10T07:08:01.3047444Z             {
2026-06-10T07:08:01.3047811Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3048105Z               "line": 18
2026-06-10T07:08:01.3048385Z             },
2026-06-10T07:08:01.3048686Z             {
2026-06-10T07:08:01.3049132Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3049437Z               "line": 309
2026-06-10T07:08:01.3049719Z             }
2026-06-10T07:08:01.3049996Z           ]
2026-06-10T07:08:01.3050286Z         },
2026-06-10T07:08:01.3050569Z         "int": {
2026-06-10T07:08:01.3050865Z           "complete": false,
2026-06-10T07:08:01.3051153Z           "evidence": []
2026-06-10T07:08:01.3051423Z         },
2026-06-10T07:08:01.3051704Z         "unit": {
2026-06-10T07:08:01.3052004Z           "complete": true,
2026-06-10T07:08:01.3052290Z           "evidence": [
2026-06-10T07:08:01.3052577Z             {
2026-06-10T07:08:01.3052929Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3053225Z               "line": 559
2026-06-10T07:08:01.3053501Z             },
2026-06-10T07:08:01.3053772Z             {
2026-06-10T07:08:01.3054142Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3054429Z               "line": 569
2026-06-10T07:08:01.3054701Z             }
2026-06-10T07:08:01.3054973Z           ]
2026-06-10T07:08:01.3055249Z         }
2026-06-10T07:08:01.3055516Z       }
2026-06-10T07:08:01.3055792Z     },
2026-06-10T07:08:01.3056068Z     {
2026-06-10T07:08:01.3056406Z       "id": "REQ-SEAM-PSYCHE",
2026-06-10T07:08:01.3057050Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-10T07:08:01.3057351Z       "requiredStages": [
2026-06-10T07:08:01.3057627Z         "impl",
2026-06-10T07:08:01.3057909Z         "unit",
2026-06-10T07:08:01.3058186Z         "int"
2026-06-10T07:08:01.3058501Z       ],
2026-06-10T07:08:01.3058780Z       "stages": {
2026-06-10T07:08:01.3059135Z         "doc": {
2026-06-10T07:08:01.3059421Z           "complete": false,
2026-06-10T07:08:01.3059702Z           "evidence": []
2026-06-10T07:08:01.3059969Z         },
2026-06-10T07:08:01.3060251Z         "impl": {
2026-06-10T07:08:01.3060547Z           "complete": true,
2026-06-10T07:08:01.3060838Z           "evidence": [
2026-06-10T07:08:01.3061105Z             {
2026-06-10T07:08:01.3061467Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T07:08:01.3061751Z               "line": 19
2026-06-10T07:08:01.3062021Z             },
2026-06-10T07:08:01.3062308Z             {
2026-06-10T07:08:01.3062651Z               "path": "crates/spt/src/api/live.rs",
2026-06-10T07:08:01.3062937Z               "line": 12
2026-06-10T07:08:01.3063214Z             },
2026-06-10T07:08:01.3063489Z             {
2026-06-10T07:08:01.3063848Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3064133Z               "line": 209
2026-06-10T07:08:01.3064411Z             }
2026-06-10T07:08:01.3064689Z           ]
2026-06-10T07:08:01.3064960Z         },
2026-06-10T07:08:01.3065238Z         "int": {
2026-06-10T07:08:01.3065547Z           "complete": true,
2026-06-10T07:08:01.3065956Z           "evidence": [
2026-06-10T07:08:01.3066361Z             {
2026-06-10T07:08:01.3066744Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:01.3067056Z               "line": 255
2026-06-10T07:08:01.3067343Z             }
2026-06-10T07:08:01.3067614Z           ]
2026-06-10T07:08:01.3067887Z         },
2026-06-10T07:08:01.3068168Z         "unit": {
2026-06-10T07:08:01.3068559Z           "complete": true,
2026-06-10T07:08:01.3068854Z           "evidence": [
2026-06-10T07:08:01.3069202Z             {
2026-06-10T07:08:01.3069571Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T07:08:01.3069876Z               "line": 161
2026-06-10T07:08:01.3070148Z             },
2026-06-10T07:08:01.3070421Z             {
2026-06-10T07:08:01.3070778Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T07:08:01.3071073Z               "line": 168
2026-06-10T07:08:01.3071350Z             },
2026-06-10T07:08:01.3071627Z             {
2026-06-10T07:08:01.3071985Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-10T07:08:01.3072283Z               "line": 191
2026-06-10T07:08:01.3072558Z             },
2026-06-10T07:08:01.3072829Z             {
2026-06-10T07:08:01.3073188Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-10T07:08:01.3073473Z               "line": 106
2026-06-10T07:08:01.3073754Z             },
2026-06-10T07:08:01.3074050Z             {
2026-06-10T07:08:01.3074413Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-10T07:08:01.3074707Z               "line": 137
2026-06-10T07:08:01.3074976Z             },
2026-06-10T07:08:01.3075249Z             {
2026-06-10T07:08:01.3075611Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-10T07:08:01.3075893Z               "line": 161
2026-06-10T07:08:01.3076169Z             }
2026-06-10T07:08:01.3076442Z           ]
2026-06-10T07:08:01.3076713Z         }
2026-06-10T07:08:01.3076979Z       }
2026-06-10T07:08:01.3077246Z     },
2026-06-10T07:08:01.3077522Z     {
2026-06-10T07:08:01.3077827Z       "id": "REQ-SEAM-RESUME",
2026-06-10T07:08:01.3078399Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-10T07:08:01.3078705Z       "requiredStages": [
2026-06-10T07:08:01.3079043Z         "impl",
2026-06-10T07:08:01.3079311Z         "unit"
2026-06-10T07:08:01.3079587Z       ],
2026-06-10T07:08:01.3079866Z       "stages": {
2026-06-10T07:08:01.3080140Z         "doc": {
2026-06-10T07:08:01.3080446Z           "complete": false,
2026-06-10T07:08:01.3080732Z           "evidence": []
2026-06-10T07:08:01.3081014Z         },
2026-06-10T07:08:01.3081290Z         "impl": {
2026-06-10T07:08:01.3081591Z           "complete": true,
2026-06-10T07:08:01.3081882Z           "evidence": [
2026-06-10T07:08:01.3082154Z             {
2026-06-10T07:08:01.3082521Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T07:08:01.3082806Z               "line": 19
2026-06-10T07:08:01.3083089Z             }
2026-06-10T07:08:01.3083360Z           ]
2026-06-10T07:08:01.3083637Z         },
2026-06-10T07:08:01.3083928Z         "int": {
2026-06-10T07:08:01.3084219Z           "complete": false,
2026-06-10T07:08:01.3084515Z           "evidence": []
2026-06-10T07:08:01.3084788Z         },
2026-06-10T07:08:01.3085074Z         "unit": {
2026-06-10T07:08:01.3085367Z           "complete": true,
2026-06-10T07:08:01.3085661Z           "evidence": [
2026-06-10T07:08:01.3085942Z             {
2026-06-10T07:08:01.3086295Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T07:08:01.3086590Z               "line": 179
2026-06-10T07:08:01.3086867Z             },
2026-06-10T07:08:01.3087144Z             {
2026-06-10T07:08:01.3087496Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T07:08:01.3087801Z               "line": 201
2026-06-10T07:08:01.3088082Z             },
2026-06-10T07:08:01.3088359Z             {
2026-06-10T07:08:01.3088721Z               "path": "crates/spt-live/src/resume.rs",
2026-06-10T07:08:01.3089078Z               "line": 222
2026-06-10T07:08:01.3089355Z             }
2026-06-10T07:08:01.3089941Z           ]
2026-06-10T07:08:01.3090214Z         }
2026-06-10T07:08:01.3090494Z       }
2026-06-10T07:08:01.3090763Z     },
2026-06-10T07:08:01.3091034Z     {
2026-06-10T07:08:01.3091335Z       "id": "REQ-SEAM-SPAWN",
2026-06-10T07:08:01.3091659Z       "title": "spawn-session seam",
2026-06-10T07:08:01.3091959Z       "requiredStages": [
2026-06-10T07:08:01.3092331Z         "impl",
2026-06-10T07:08:01.3092613Z         "unit"
2026-06-10T07:08:01.3092885Z       ],
2026-06-10T07:08:01.3093170Z       "stages": {
2026-06-10T07:08:01.3093445Z         "doc": {
2026-06-10T07:08:01.3093745Z           "complete": false,
2026-06-10T07:08:01.3094031Z           "evidence": []
2026-06-10T07:08:01.3094308Z         },
2026-06-10T07:08:01.3094589Z         "impl": {
2026-06-10T07:08:01.3094884Z           "complete": true,
2026-06-10T07:08:01.3095175Z           "evidence": [
2026-06-10T07:08:01.3095446Z             {
2026-06-10T07:08:01.3095832Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.3096125Z               "line": 20
2026-06-10T07:08:01.3096402Z             }
2026-06-10T07:08:01.3096684Z           ]
2026-06-10T07:08:01.3096970Z         },
2026-06-10T07:08:01.3097256Z         "int": {
2026-06-10T07:08:01.3097542Z           "complete": false,
2026-06-10T07:08:01.3097834Z           "evidence": []
2026-06-10T07:08:01.3098114Z         },
2026-06-10T07:08:01.3098395Z         "unit": {
2026-06-10T07:08:01.3098690Z           "complete": true,
2026-06-10T07:08:01.3099028Z           "evidence": [
2026-06-10T07:08:01.3099314Z             {
2026-06-10T07:08:01.3099696Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.3099986Z               "line": 435
2026-06-10T07:08:01.3100263Z             },
2026-06-10T07:08:01.3100539Z             {
2026-06-10T07:08:01.3100916Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.3101199Z               "line": 442
2026-06-10T07:08:01.3101476Z             },
2026-06-10T07:08:01.3101767Z             {
2026-06-10T07:08:01.3102148Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.3102434Z               "line": 452
2026-06-10T07:08:01.3102711Z             },
2026-06-10T07:08:01.3102989Z             {
2026-06-10T07:08:01.3103359Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.3103660Z               "line": 458
2026-06-10T07:08:01.3103930Z             },
2026-06-10T07:08:01.3104209Z             {
2026-06-10T07:08:01.3104582Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.3104873Z               "line": 483
2026-06-10T07:08:01.3105154Z             },
2026-06-10T07:08:01.3105430Z             {
2026-06-10T07:08:01.3105803Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-10T07:08:01.3106088Z               "line": 520
2026-06-10T07:08:01.3106363Z             }
2026-06-10T07:08:01.3106648Z           ]
2026-06-10T07:08:01.3106920Z         }
2026-06-10T07:08:01.3107197Z       }
2026-06-10T07:08:01.3107473Z     },
2026-06-10T07:08:01.3107750Z     {
2026-06-10T07:08:01.3108059Z       "id": "REQ-SEAM-UPDATE",
2026-06-10T07:08:01.3108569Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-10T07:08:01.3108869Z       "requiredStages": [
2026-06-10T07:08:01.3109226Z         "impl",
2026-06-10T07:08:01.3109512Z         "unit"
2026-06-10T07:08:01.3109789Z       ],
2026-06-10T07:08:01.3110080Z       "stages": {
2026-06-10T07:08:01.3110347Z         "doc": {
2026-06-10T07:08:01.3110647Z           "complete": false,
2026-06-10T07:08:01.3110939Z           "evidence": []
2026-06-10T07:08:01.3111200Z         },
2026-06-10T07:08:01.3111485Z         "impl": {
2026-06-10T07:08:01.3111778Z           "complete": true,
2026-06-10T07:08:01.3112069Z           "evidence": [
2026-06-10T07:08:01.3112336Z             {
2026-06-10T07:08:01.3112750Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3113042Z               "line": 28
2026-06-10T07:08:01.3113414Z             },
2026-06-10T07:08:01.3113690Z             {
2026-06-10T07:08:01.3114091Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3114385Z               "line": 83
2026-06-10T07:08:01.3114660Z             }
2026-06-10T07:08:01.3114941Z           ]
2026-06-10T07:08:01.3115308Z         },
2026-06-10T07:08:01.3115637Z         "int": {
2026-06-10T07:08:01.3116157Z           "complete": false,
2026-06-10T07:08:01.3116533Z           "evidence": []
2026-06-10T07:08:01.3120555Z         },
2026-06-10T07:08:01.3120869Z         "unit": {
2026-06-10T07:08:01.3121184Z           "complete": true,
2026-06-10T07:08:01.3121474Z           "evidence": [
2026-06-10T07:08:01.3121750Z             {
2026-06-10T07:08:01.3122183Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3122472Z               "line": 286
2026-06-10T07:08:01.3122753Z             },
2026-06-10T07:08:01.3123025Z             {
2026-06-10T07:08:01.3123445Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3123760Z               "line": 297
2026-06-10T07:08:01.3124036Z             }
2026-06-10T07:08:01.3124322Z           ]
2026-06-10T07:08:01.3124594Z         }
2026-06-10T07:08:01.3124879Z       }
2026-06-10T07:08:01.3125145Z     },
2026-06-10T07:08:01.3125416Z     {
2026-06-10T07:08:01.3125712Z       "id": "REQ-SEC-1",
2026-06-10T07:08:01.3126990Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-10T07:08:01.3127305Z       "requiredStages": [
2026-06-10T07:08:01.3127583Z         "impl",
2026-06-10T07:08:01.3127862Z         "unit"
2026-06-10T07:08:01.3128134Z       ],
2026-06-10T07:08:01.3128416Z       "stages": {
2026-06-10T07:08:01.3128850Z         "doc": {
2026-06-10T07:08:01.3129260Z           "complete": false,
2026-06-10T07:08:01.3129561Z           "evidence": []
2026-06-10T07:08:01.3129848Z         },
2026-06-10T07:08:01.3130129Z         "impl": {
2026-06-10T07:08:01.3130427Z           "complete": true,
2026-06-10T07:08:01.3130717Z           "evidence": [
2026-06-10T07:08:01.3130990Z             {
2026-06-10T07:08:01.3131371Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T07:08:01.3131666Z               "line": 84
2026-06-10T07:08:01.3131939Z             },
2026-06-10T07:08:01.3132229Z             {
2026-06-10T07:08:01.3132600Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T07:08:01.3132894Z               "line": 114
2026-06-10T07:08:01.3133175Z             },
2026-06-10T07:08:01.3133504Z             {
2026-06-10T07:08:01.3133876Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T07:08:01.3134167Z               "line": 128
2026-06-10T07:08:01.3134443Z             },
2026-06-10T07:08:01.3134716Z             {
2026-06-10T07:08:01.3135077Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3135365Z               "line": 108
2026-06-10T07:08:01.3135639Z             },
2026-06-10T07:08:01.3135923Z             {
2026-06-10T07:08:01.3136282Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3136572Z               "line": 129
2026-06-10T07:08:01.3136843Z             },
2026-06-10T07:08:01.3137125Z             {
2026-06-10T07:08:01.3137488Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3137783Z               "line": 142
2026-06-10T07:08:01.3138063Z             },
2026-06-10T07:08:01.3138332Z             {
2026-06-10T07:08:01.3138699Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3139061Z               "line": 208
2026-06-10T07:08:01.3139338Z             },
2026-06-10T07:08:01.3139615Z             {
2026-06-10T07:08:01.3139958Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3140249Z               "line": 234
2026-06-10T07:08:01.3140511Z             },
2026-06-10T07:08:01.3140784Z             {
2026-06-10T07:08:01.3141107Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3141535Z               "line": 4047
2026-06-10T07:08:01.3141813Z             }
2026-06-10T07:08:01.3142084Z           ]
2026-06-10T07:08:01.3142357Z         },
2026-06-10T07:08:01.3142629Z         "int": {
2026-06-10T07:08:01.3142924Z           "complete": false,
2026-06-10T07:08:01.3143204Z           "evidence": []
2026-06-10T07:08:01.3143563Z         },
2026-06-10T07:08:01.3143864Z         "unit": {
2026-06-10T07:08:01.3144159Z           "complete": true,
2026-06-10T07:08:01.3144450Z           "evidence": [
2026-06-10T07:08:01.3144722Z             {
2026-06-10T07:08:01.3145103Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T07:08:01.3145395Z               "line": 140
2026-06-10T07:08:01.3145670Z             },
2026-06-10T07:08:01.3145948Z             {
2026-06-10T07:08:01.3146316Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T07:08:01.3146613Z               "line": 192
2026-06-10T07:08:01.3146884Z             },
2026-06-10T07:08:01.3147176Z             {
2026-06-10T07:08:01.3147546Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-10T07:08:01.3147833Z               "line": 233
2026-06-10T07:08:01.3148110Z             },
2026-06-10T07:08:01.3148382Z             {
2026-06-10T07:08:01.3148761Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-10T07:08:01.3149146Z               "line": 138
2026-06-10T07:08:01.3149432Z             },
2026-06-10T07:08:01.3149704Z             {
2026-06-10T07:08:01.3150070Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3150362Z               "line": 246
2026-06-10T07:08:01.3150629Z             },
2026-06-10T07:08:01.3150910Z             {
2026-06-10T07:08:01.3151258Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3151547Z               "line": 276
2026-06-10T07:08:01.3151828Z             },
2026-06-10T07:08:01.3152091Z             {
2026-06-10T07:08:01.3152458Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3152758Z               "line": 309
2026-06-10T07:08:01.3153040Z             },
2026-06-10T07:08:01.3153312Z             {
2026-06-10T07:08:01.3153674Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3153967Z               "line": 328
2026-06-10T07:08:01.3154239Z             },
2026-06-10T07:08:01.3154510Z             {
2026-06-10T07:08:01.3154873Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3155493Z               "line": 361
2026-06-10T07:08:01.3155770Z             },
2026-06-10T07:08:01.3156041Z             {
2026-06-10T07:08:01.3156404Z               "path": "crates/spt-store/src/access.rs",
2026-06-10T07:08:01.3156693Z               "line": 385
2026-06-10T07:08:01.3156971Z             },
2026-06-10T07:08:01.3157233Z             {
2026-06-10T07:08:01.3157567Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3157854Z               "line": 5632
2026-06-10T07:08:01.3158120Z             }
2026-06-10T07:08:01.3158394Z           ]
2026-06-10T07:08:01.3158670Z         }
2026-06-10T07:08:01.3159028Z       }
2026-06-10T07:08:01.3159392Z     },
2026-06-10T07:08:01.3159668Z     {
2026-06-10T07:08:01.3159964Z       "id": "REQ-SHELL-1",
2026-06-10T07:08:01.3162713Z       "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-10T07:08:01.3163023Z       "requiredStages": [
2026-06-10T07:08:01.3163299Z         "impl",
2026-06-10T07:08:01.3163586Z         "unit",
2026-06-10T07:08:01.3163862Z         "int"
2026-06-10T07:08:01.3164139Z       ],
2026-06-10T07:08:01.3164424Z       "stages": {
2026-06-10T07:08:01.3164698Z         "doc": {
2026-06-10T07:08:01.3165012Z           "complete": false,
2026-06-10T07:08:01.3165298Z           "evidence": []
2026-06-10T07:08:01.3165714Z         },
2026-06-10T07:08:01.3165996Z         "impl": {
2026-06-10T07:08:01.3166296Z           "complete": true,
2026-06-10T07:08:01.3166587Z           "evidence": [
2026-06-10T07:08:01.3166858Z             {
2026-06-10T07:08:01.3167248Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.3167531Z               "line": 94
2026-06-10T07:08:01.3167904Z             },
2026-06-10T07:08:01.3168180Z             {
2026-06-10T07:08:01.3168558Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.3168853Z               "line": 119
2026-06-10T07:08:01.3169221Z             },
2026-06-10T07:08:01.3169512Z             {
2026-06-10T07:08:01.3169886Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3170170Z               "line": 27
2026-06-10T07:08:01.3170446Z             },
2026-06-10T07:08:01.3170728Z             {
2026-06-10T07:08:01.3171110Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3171395Z               "line": 52
2026-06-10T07:08:01.3171667Z             },
2026-06-10T07:08:01.3171939Z             {
2026-06-10T07:08:01.3172321Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3172611Z               "line": 132
2026-06-10T07:08:01.3172877Z             },
2026-06-10T07:08:01.3173155Z             {
2026-06-10T07:08:01.3173535Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3173817Z               "line": 164
2026-06-10T07:08:01.3174084Z             },
2026-06-10T07:08:01.3174357Z             {
2026-06-10T07:08:01.3174728Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3175017Z               "line": 22
2026-06-10T07:08:01.3175297Z             },
2026-06-10T07:08:01.3175564Z             {
2026-06-10T07:08:01.3175946Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3176227Z               "line": 65
2026-06-10T07:08:01.3176507Z             },
2026-06-10T07:08:01.3176784Z             {
2026-06-10T07:08:01.3177157Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3177447Z               "line": 76
2026-06-10T07:08:01.3177722Z             },
2026-06-10T07:08:01.3177992Z             {
2026-06-10T07:08:01.3178368Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3178650Z               "line": 150
2026-06-10T07:08:01.3178932Z             },
2026-06-10T07:08:01.3179280Z             {
2026-06-10T07:08:01.3179665Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3179952Z               "line": 209
2026-06-10T07:08:01.3180228Z             },
2026-06-10T07:08:01.3180493Z             {
2026-06-10T07:08:01.3180878Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3181170Z               "line": 246
2026-06-10T07:08:01.3181446Z             },
2026-06-10T07:08:01.3181723Z             {
2026-06-10T07:08:01.3182099Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3182400Z               "line": 267
2026-06-10T07:08:01.3182667Z             },
2026-06-10T07:08:01.3182944Z             {
2026-06-10T07:08:01.3183329Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3183614Z               "line": 280
2026-06-10T07:08:01.3183891Z             },
2026-06-10T07:08:01.3184167Z             {
2026-06-10T07:08:01.3184530Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.3184815Z               "line": 207
2026-06-10T07:08:01.3185092Z             },
2026-06-10T07:08:01.3185373Z             {
2026-06-10T07:08:01.3185723Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.3186014Z               "line": 223
2026-06-10T07:08:01.3186286Z             },
2026-06-10T07:08:01.3186562Z             {
2026-06-10T07:08:01.3186934Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.3187215Z               "line": 41
2026-06-10T07:08:01.3187493Z             },
2026-06-10T07:08:01.3187916Z             {
2026-06-10T07:08:01.3188296Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.3188576Z               "line": 204
2026-06-10T07:08:01.3188848Z             },
2026-06-10T07:08:01.3189205Z             {
2026-06-10T07:08:01.3189563Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-10T07:08:01.3190106Z               "line": 156
2026-06-10T07:08:01.3190379Z             },
2026-06-10T07:08:01.3190656Z             {
2026-06-10T07:08:01.3190987Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:01.3191281Z               "line": 295
2026-06-10T07:08:01.3191562Z             },
2026-06-10T07:08:01.3191838Z             {
2026-06-10T07:08:01.3192177Z               "path": "crates/spt/src/api/mod.rs",
2026-06-10T07:08:01.3192463Z               "line": 345
2026-06-10T07:08:01.3192731Z             },
2026-06-10T07:08:01.3193002Z             {
2026-06-10T07:08:01.3193379Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.3193674Z               "line": 261
2026-06-10T07:08:01.3193947Z             },
2026-06-10T07:08:01.3194213Z             {
2026-06-10T07:08:01.3194542Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3194843Z               "line": 4545
2026-06-10T07:08:01.3195109Z             },
2026-06-10T07:08:01.3195385Z             {
2026-06-10T07:08:01.3195719Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3196004Z               "line": 4695
2026-06-10T07:08:01.3196278Z             },
2026-06-10T07:08:01.3196550Z             {
2026-06-10T07:08:01.3196870Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3197161Z               "line": 4732
2026-06-10T07:08:01.3197437Z             }
2026-06-10T07:08:01.3197715Z           ]
2026-06-10T07:08:01.3197991Z         },
2026-06-10T07:08:01.3198272Z         "int": {
2026-06-10T07:08:01.3198572Z           "complete": true,
2026-06-10T07:08:01.3198866Z           "evidence": [
2026-06-10T07:08:01.3199221Z             {
2026-06-10T07:08:01.3199618Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.3199909Z               "line": 706
2026-06-10T07:08:01.3200185Z             },
2026-06-10T07:08:01.3200457Z             {
2026-06-10T07:08:01.3200853Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-10T07:08:01.3201149Z               "line": 8
2026-06-10T07:08:01.3201419Z             },
2026-06-10T07:08:01.3201703Z             {
2026-06-10T07:08:01.3202103Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-10T07:08:01.3202388Z               "line": 49
2026-06-10T07:08:01.3202666Z             },
2026-06-10T07:08:01.3202932Z             {
2026-06-10T07:08:01.3203314Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.3203600Z               "line": 708
2026-06-10T07:08:01.3203872Z             },
2026-06-10T07:08:01.3204145Z             {
2026-06-10T07:08:01.3204558Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.3205016Z               "line": 1118
2026-06-10T07:08:01.3205350Z             },
2026-06-10T07:08:01.3205626Z             {
2026-06-10T07:08:01.3206042Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-10T07:08:01.3206338Z               "line": 17
2026-06-10T07:08:01.3206617Z             },
2026-06-10T07:08:01.3206895Z             {
2026-06-10T07:08:01.3207253Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-10T07:08:01.3207539Z               "line": 14
2026-06-10T07:08:01.3207811Z             }
2026-06-10T07:08:01.3208078Z           ]
2026-06-10T07:08:01.3208350Z         },
2026-06-10T07:08:01.3208636Z         "unit": {
2026-06-10T07:08:01.3208933Z           "complete": true,
2026-06-10T07:08:01.3209303Z           "evidence": [
2026-06-10T07:08:01.3209579Z             {
2026-06-10T07:08:01.3209963Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3210240Z               "line": 234
2026-06-10T07:08:01.3210517Z             },
2026-06-10T07:08:01.3211098Z             {
2026-06-10T07:08:01.3211480Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3211767Z               "line": 267
2026-06-10T07:08:01.3212041Z             },
2026-06-10T07:08:01.3212324Z             {
2026-06-10T07:08:01.3212701Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3213088Z               "line": 307
2026-06-10T07:08:01.3213370Z             },
2026-06-10T07:08:01.3213636Z             {
2026-06-10T07:08:01.3214014Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3214300Z               "line": 519
2026-06-10T07:08:01.3214576Z             },
2026-06-10T07:08:01.3214851Z             {
2026-06-10T07:08:01.3215223Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3215513Z               "line": 592
2026-06-10T07:08:01.3215781Z             },
2026-06-10T07:08:01.3216062Z             {
2026-06-10T07:08:01.3216434Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3216734Z               "line": 736
2026-06-10T07:08:01.3217015Z             },
2026-06-10T07:08:01.3217286Z             {
2026-06-10T07:08:01.3217652Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.3217933Z               "line": 585
2026-06-10T07:08:01.3218210Z             },
2026-06-10T07:08:01.3218482Z             {
2026-06-10T07:08:01.3218854Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-10T07:08:01.3219243Z               "line": 352
2026-06-10T07:08:01.3219521Z             },
2026-06-10T07:08:01.3219798Z             {
2026-06-10T07:08:01.3220115Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3220399Z               "line": 5980
2026-06-10T07:08:01.3220670Z             },
2026-06-10T07:08:01.3220942Z             {
2026-06-10T07:08:01.3221324Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3221605Z               "line": 6302
2026-06-10T07:08:01.3221882Z             },
2026-06-10T07:08:01.3222177Z             {
2026-06-10T07:08:01.3222511Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3222804Z               "line": 6668
2026-06-10T07:08:01.3223090Z             }
2026-06-10T07:08:01.3223367Z           ]
2026-06-10T07:08:01.3223643Z         }
2026-06-10T07:08:01.3223930Z       }
2026-06-10T07:08:01.3224201Z     },
2026-06-10T07:08:01.3224482Z     {
2026-06-10T07:08:01.3224778Z       "id": "REQ-SHELL-2",
2026-06-10T07:08:01.3229132Z       "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-10T07:08:01.3229451Z       "requiredStages": [
2026-06-10T07:08:01.3229752Z         "impl",
2026-06-10T07:08:01.3230034Z         "unit",
2026-06-10T07:08:01.3230315Z         "int"
2026-06-10T07:08:01.3230584Z       ],
2026-06-10T07:08:01.3230878Z       "stages": {
2026-06-10T07:08:01.3231154Z         "doc": {
2026-06-10T07:08:01.3231455Z           "complete": false,
2026-06-10T07:08:01.3231742Z           "evidence": []
2026-06-10T07:08:01.3232022Z         },
2026-06-10T07:08:01.3232300Z         "impl": {
2026-06-10T07:08:01.3232596Z           "complete": true,
2026-06-10T07:08:01.3232892Z           "evidence": [
2026-06-10T07:08:01.3233166Z             {
2026-06-10T07:08:01.3233598Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.3233884Z               "line": 193
2026-06-10T07:08:01.3234166Z             },
2026-06-10T07:08:01.3234442Z             {
2026-06-10T07:08:01.3234829Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.3235115Z               "line": 403
2026-06-10T07:08:01.3235496Z             },
2026-06-10T07:08:01.3235778Z             {
2026-06-10T07:08:01.3236148Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-10T07:08:01.3236439Z               "line": 250
2026-06-10T07:08:01.3236721Z             },
2026-06-10T07:08:01.3236992Z             {
2026-06-10T07:08:01.3237464Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.3237755Z               "line": 310
2026-06-10T07:08:01.3238032Z             },
2026-06-10T07:08:01.3238302Z             {
2026-06-10T07:08:01.3238681Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.3239044Z               "line": 30
2026-06-10T07:08:01.3239321Z             },
2026-06-10T07:08:01.3239602Z             {
2026-06-10T07:08:01.3239974Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.3240265Z               "line": 150
2026-06-10T07:08:01.3240542Z             },
2026-06-10T07:08:01.3240813Z             {
2026-06-10T07:08:01.3241193Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.3241486Z               "line": 186
2026-06-10T07:08:01.3241767Z             },
2026-06-10T07:08:01.3242038Z             {
2026-06-10T07:08:01.3242416Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.3242711Z               "line": 345
2026-06-10T07:08:01.3242992Z             },
2026-06-10T07:08:01.3243273Z             {
2026-06-10T07:08:01.3243659Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.3243948Z               "line": 348
2026-06-10T07:08:01.3244224Z             },
2026-06-10T07:08:01.3244492Z             {
2026-06-10T07:08:01.3244873Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-10T07:08:01.3245202Z               "line": 115
2026-06-10T07:08:01.3245483Z             },
2026-06-10T07:08:01.3245755Z             {
2026-06-10T07:08:01.3246165Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3246455Z               "line": 120
2026-06-10T07:08:01.3246747Z             },
2026-06-10T07:08:01.3247018Z             {
2026-06-10T07:08:01.3247395Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3247690Z               "line": 360
2026-06-10T07:08:01.3247962Z             },
2026-06-10T07:08:01.3248240Z             {
2026-06-10T07:08:01.3248625Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3248914Z               "line": 464
2026-06-10T07:08:01.3249275Z             },
2026-06-10T07:08:01.3249551Z             {
2026-06-10T07:08:01.3249938Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3250214Z               "line": 24
2026-06-10T07:08:01.3250491Z             },
2026-06-10T07:08:01.3250762Z             {
2026-06-10T07:08:01.3251145Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3251426Z               "line": 76
2026-06-10T07:08:01.3251700Z             },
2026-06-10T07:08:01.3251979Z             {
2026-06-10T07:08:01.3252351Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3252642Z               "line": 154
2026-06-10T07:08:01.3252923Z             },
2026-06-10T07:08:01.3253205Z             {
2026-06-10T07:08:01.3253586Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3253872Z               "line": 177
2026-06-10T07:08:01.3254158Z             },
2026-06-10T07:08:01.3254433Z             {
2026-06-10T07:08:01.3254813Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3255100Z               "line": 273
2026-06-10T07:08:01.3255376Z             },
2026-06-10T07:08:01.3255658Z             {
2026-06-10T07:08:01.3256043Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3256334Z               "line": 450
2026-06-10T07:08:01.3256603Z             },
2026-06-10T07:08:01.3256884Z             {
2026-06-10T07:08:01.3257283Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3257687Z               "line": 532
2026-06-10T07:08:01.3257969Z             },
2026-06-10T07:08:01.3258245Z             {
2026-06-10T07:08:01.3258636Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-10T07:08:01.3258917Z               "line": 27
2026-06-10T07:08:01.3259270Z             },
2026-06-10T07:08:01.3259540Z             {
2026-06-10T07:08:01.3260020Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-10T07:08:01.3260310Z               "line": 43
2026-06-10T07:08:01.3260588Z             },
2026-06-10T07:08:01.3260860Z             {
2026-06-10T07:08:01.3261227Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.3261512Z               "line": 323
2026-06-10T07:08:01.3261789Z             },
2026-06-10T07:08:01.3262062Z             {
2026-06-10T07:08:01.3262403Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3262693Z               "line": 1259
2026-06-10T07:08:01.3262974Z             },
2026-06-10T07:08:01.3263245Z             {
2026-06-10T07:08:01.3263584Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3263875Z               "line": 4559
2026-06-10T07:08:01.3264156Z             },
2026-06-10T07:08:01.3264437Z             {
2026-06-10T07:08:01.3264765Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3265063Z               "line": 4620
2026-06-10T07:08:01.3265350Z             },
2026-06-10T07:08:01.3265626Z             {
2026-06-10T07:08:01.3265950Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3266246Z               "line": 4648
2026-06-10T07:08:01.3266524Z             },
2026-06-10T07:08:01.3266795Z             {
2026-06-10T07:08:01.3267129Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3267416Z               "line": 4702
2026-06-10T07:08:01.3267689Z             },
2026-06-10T07:08:01.3267956Z             {
2026-06-10T07:08:01.3268276Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3268557Z               "line": 4818
2026-06-10T07:08:01.3268839Z             },
2026-06-10T07:08:01.3269249Z             {
2026-06-10T07:08:01.3269582Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3269877Z               "line": 4871
2026-06-10T07:08:01.3270142Z             },
2026-06-10T07:08:01.3270419Z             {
2026-06-10T07:08:01.3270776Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.3271077Z               "line": 298
2026-06-10T07:08:01.3271353Z             },
2026-06-10T07:08:01.3271621Z             {
2026-06-10T07:08:01.3271955Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.3272251Z               "line": 339
2026-06-10T07:08:01.3272522Z             }
2026-06-10T07:08:01.3272791Z           ]
2026-06-10T07:08:01.3273052Z         },
2026-06-10T07:08:01.3273334Z         "int": {
2026-06-10T07:08:01.3273629Z           "complete": true,
2026-06-10T07:08:01.3273925Z           "evidence": [
2026-06-10T07:08:01.3274202Z             {
2026-06-10T07:08:01.3274597Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.3274898Z               "line": 699
2026-06-10T07:08:01.3275194Z             },
2026-06-10T07:08:01.3275468Z             {
2026-06-10T07:08:01.3275843Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.3276135Z               "line": 708
2026-06-10T07:08:01.3276416Z             },
2026-06-10T07:08:01.3276692Z             {
2026-06-10T07:08:01.3277069Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.3277360Z               "line": 1118
2026-06-10T07:08:01.3277636Z             },
2026-06-10T07:08:01.3277902Z             {
2026-06-10T07:08:01.3278316Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-10T07:08:01.3278607Z               "line": 18
2026-06-10T07:08:01.3278879Z             }
2026-06-10T07:08:01.3279246Z           ]
2026-06-10T07:08:01.3279518Z         },
2026-06-10T07:08:01.3279804Z         "unit": {
2026-06-10T07:08:01.3280095Z           "complete": true,
2026-06-10T07:08:01.3280508Z           "evidence": [
2026-06-10T07:08:01.3280797Z             {
2026-06-10T07:08:01.3281174Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-10T07:08:01.3281469Z               "line": 429
2026-06-10T07:08:01.3281746Z             },
2026-06-10T07:08:01.3282018Z             {
2026-06-10T07:08:01.3282487Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-10T07:08:01.3282787Z               "line": 794
2026-06-10T07:08:01.3283073Z             },
2026-06-10T07:08:01.3283347Z             {
2026-06-10T07:08:01.3283731Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3284022Z               "line": 625
2026-06-10T07:08:01.3284298Z             },
2026-06-10T07:08:01.3284570Z             {
2026-06-10T07:08:01.3284947Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3285238Z               "line": 674
2026-06-10T07:08:01.3285505Z             },
2026-06-10T07:08:01.3285777Z             {
2026-06-10T07:08:01.3286170Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-10T07:08:01.3286461Z               "line": 698
2026-06-10T07:08:01.3286728Z             },
2026-06-10T07:08:01.3287009Z             {
2026-06-10T07:08:01.3287385Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3287667Z               "line": 596
2026-06-10T07:08:01.3287939Z             },
2026-06-10T07:08:01.3288206Z             {
2026-06-10T07:08:01.3288578Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3288862Z               "line": 617
2026-06-10T07:08:01.3289259Z             },
2026-06-10T07:08:01.3289535Z             {
2026-06-10T07:08:01.3289912Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3290208Z               "line": 653
2026-06-10T07:08:01.3290470Z             },
2026-06-10T07:08:01.3290746Z             {
2026-06-10T07:08:01.3291121Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3291415Z               "line": 707
2026-06-10T07:08:01.3291686Z             },
2026-06-10T07:08:01.3291958Z             {
2026-06-10T07:08:01.3292339Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3292616Z               "line": 725
2026-06-10T07:08:01.3292883Z             },
2026-06-10T07:08:01.3293160Z             {
2026-06-10T07:08:01.3293536Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3293832Z               "line": 759
2026-06-10T07:08:01.3294106Z             },
2026-06-10T07:08:01.3294378Z             {
2026-06-10T07:08:01.3294754Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-10T07:08:01.3295050Z               "line": 834
2026-06-10T07:08:01.3295331Z             },
2026-06-10T07:08:01.3295604Z             {
2026-06-10T07:08:01.3295980Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-10T07:08:01.3296267Z               "line": 80
2026-06-10T07:08:01.3296541Z             },
2026-06-10T07:08:01.3296810Z             {
2026-06-10T07:08:01.3297149Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3297439Z               "line": 5432
2026-06-10T07:08:01.3297711Z             },
2026-06-10T07:08:01.3298064Z             {
2026-06-10T07:08:01.3298403Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3298703Z               "line": 6057
2026-06-10T07:08:01.3299062Z             },
2026-06-10T07:08:01.3299346Z             {
2026-06-10T07:08:01.3299684Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3299984Z               "line": 6127
2026-06-10T07:08:01.3300262Z             },
2026-06-10T07:08:01.3300528Z             {
2026-06-10T07:08:01.3300867Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3301158Z               "line": 6165
2026-06-10T07:08:01.3301440Z             }
2026-06-10T07:08:01.3301724Z           ]
2026-06-10T07:08:01.3301998Z         }
2026-06-10T07:08:01.3302280Z       }
2026-06-10T07:08:01.3302551Z     },
2026-06-10T07:08:01.3302963Z     {
2026-06-10T07:08:01.3303263Z       "id": "REQ-START-1",
2026-06-10T07:08:01.3303863Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-10T07:08:01.3304168Z       "requiredStages": [
2026-06-10T07:08:01.3304444Z         "impl",
2026-06-10T07:08:01.3304723Z         "unit"
2026-06-10T07:08:01.3304995Z       ],
2026-06-10T07:08:01.3305380Z       "stages": {
2026-06-10T07:08:01.3305686Z         "doc": {
2026-06-10T07:08:01.3306043Z           "complete": false,
2026-06-10T07:08:01.3306339Z           "evidence": []
2026-06-10T07:08:01.3306615Z         },
2026-06-10T07:08:01.3306911Z         "impl": {
2026-06-10T07:08:01.3307214Z           "complete": true,
2026-06-10T07:08:01.3307519Z           "evidence": [
2026-06-10T07:08:01.3307800Z             {
2026-06-10T07:08:01.3308172Z               "path": "crates/spt-store/src/seed.rs",
2026-06-10T07:08:01.3308482Z               "line": 16
2026-06-10T07:08:01.3308759Z             }
2026-06-10T07:08:01.3309107Z           ]
2026-06-10T07:08:01.3309388Z         },
2026-06-10T07:08:01.3309665Z         "int": {
2026-06-10T07:08:01.3309973Z           "complete": false,
2026-06-10T07:08:01.3310268Z           "evidence": []
2026-06-10T07:08:01.3310535Z         },
2026-06-10T07:08:01.3310808Z         "unit": {
2026-06-10T07:08:01.3311108Z           "complete": true,
2026-06-10T07:08:01.3311408Z           "evidence": [
2026-06-10T07:08:01.3311686Z             {
2026-06-10T07:08:01.3312042Z               "path": "crates/spt-store/src/seed.rs",
2026-06-10T07:08:01.3312332Z               "line": 43
2026-06-10T07:08:01.3312602Z             },
2026-06-10T07:08:01.3312874Z             {
2026-06-10T07:08:01.3313265Z               "path": "crates/spt-store/src/seed.rs",
2026-06-10T07:08:01.3313542Z               "line": 59
2026-06-10T07:08:01.3313823Z             }
2026-06-10T07:08:01.3314094Z           ]
2026-06-10T07:08:01.3314375Z         }
2026-06-10T07:08:01.3314652Z       }
2026-06-10T07:08:01.3314923Z     },
2026-06-10T07:08:01.3315208Z     {
2026-06-10T07:08:01.3315503Z       "id": "REQ-START-2",
2026-06-10T07:08:01.3315940Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-10T07:08:01.3316246Z       "requiredStages": [
2026-06-10T07:08:01.3316527Z         "impl",
2026-06-10T07:08:01.3316813Z         "unit",
2026-06-10T07:08:01.3317086Z         "int"
2026-06-10T07:08:01.3317378Z       ],
2026-06-10T07:08:01.3317656Z       "stages": {
2026-06-10T07:08:01.3317939Z         "doc": {
2026-06-10T07:08:01.3318235Z           "complete": false,
2026-06-10T07:08:01.3318531Z           "evidence": []
2026-06-10T07:08:01.3318813Z         },
2026-06-10T07:08:01.3319170Z         "impl": {
2026-06-10T07:08:01.3319475Z           "complete": true,
2026-06-10T07:08:01.3319761Z           "evidence": [
2026-06-10T07:08:01.3320042Z             {
2026-06-10T07:08:01.3320405Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3320696Z               "line": 16
2026-06-10T07:08:01.3320977Z             },
2026-06-10T07:08:01.3321259Z             {
2026-06-10T07:08:01.3321625Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3321912Z               "line": 100
2026-06-10T07:08:01.3322193Z             },
2026-06-10T07:08:01.3322465Z             {
2026-06-10T07:08:01.3322830Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3323138Z               "line": 208
2026-06-10T07:08:01.3323409Z             }
2026-06-10T07:08:01.3323691Z           ]
2026-06-10T07:08:01.3323962Z         },
2026-06-10T07:08:01.3324249Z         "int": {
2026-06-10T07:08:01.3324540Z           "complete": true,
2026-06-10T07:08:01.3324831Z           "evidence": [
2026-06-10T07:08:01.3325113Z             {
2026-06-10T07:08:01.3325488Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:01.3325778Z               "line": 182
2026-06-10T07:08:01.3326053Z             }
2026-06-10T07:08:01.3326330Z           ]
2026-06-10T07:08:01.3326616Z         },
2026-06-10T07:08:01.3331345Z         "unit": {
2026-06-10T07:08:01.3331842Z           "complete": true,
2026-06-10T07:08:01.3332119Z           "evidence": [
2026-06-10T07:08:01.3332401Z             {
2026-06-10T07:08:01.3332772Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3333068Z               "line": 421
2026-06-10T07:08:01.3333338Z             },
2026-06-10T07:08:01.3333717Z             {
2026-06-10T07:08:01.3334085Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3334371Z               "line": 454
2026-06-10T07:08:01.3334648Z             }
2026-06-10T07:08:01.3335238Z           ]
2026-06-10T07:08:01.3335529Z         }
2026-06-10T07:08:01.3335801Z       }
2026-06-10T07:08:01.3336086Z     },
2026-06-10T07:08:01.3336356Z     {
2026-06-10T07:08:01.3336661Z       "id": "REQ-START-3",
2026-06-10T07:08:01.3337200Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-10T07:08:01.3337515Z       "requiredStages": [
2026-06-10T07:08:01.3337805Z         "impl",
2026-06-10T07:08:01.3338091Z         "unit",
2026-06-10T07:08:01.3338367Z         "int"
2026-06-10T07:08:01.3338643Z       ],
2026-06-10T07:08:01.3338923Z       "stages": {
2026-06-10T07:08:01.3339289Z         "doc": {
2026-06-10T07:08:01.3339594Z           "complete": false,
2026-06-10T07:08:01.3339891Z           "evidence": []
2026-06-10T07:08:01.3340162Z         },
2026-06-10T07:08:01.3340458Z         "impl": {
2026-06-10T07:08:01.3340759Z           "complete": true,
2026-06-10T07:08:01.3341045Z           "evidence": [
2026-06-10T07:08:01.3341317Z             {
2026-06-10T07:08:01.3341711Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:01.3341992Z               "line": 23
2026-06-10T07:08:01.3342268Z             },
2026-06-10T07:08:01.3342545Z             {
2026-06-10T07:08:01.3342927Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:01.3343217Z               "line": 205
2026-06-10T07:08:01.3343494Z             },
2026-06-10T07:08:01.3343765Z             {
2026-06-10T07:08:01.3344148Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:01.3344434Z               "line": 221
2026-06-10T07:08:01.3344711Z             },
2026-06-10T07:08:01.3344993Z             {
2026-06-10T07:08:01.3345341Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3345617Z               "line": 17
2026-06-10T07:08:01.3345927Z             },
2026-06-10T07:08:01.3346200Z             {
2026-06-10T07:08:01.3346557Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3346851Z               "line": 43
2026-06-10T07:08:01.3347130Z             },
2026-06-10T07:08:01.3347406Z             {
2026-06-10T07:08:01.3347770Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3348060Z               "line": 101
2026-06-10T07:08:01.3348341Z             }
2026-06-10T07:08:01.3348612Z           ]
2026-06-10T07:08:01.3348894Z         },
2026-06-10T07:08:01.3349265Z         "int": {
2026-06-10T07:08:01.3349568Z           "complete": true,
2026-06-10T07:08:01.3349911Z           "evidence": [
2026-06-10T07:08:01.3350192Z             {
2026-06-10T07:08:01.3350574Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-10T07:08:01.3350870Z               "line": 436
2026-06-10T07:08:01.3351151Z             }
2026-06-10T07:08:01.3351432Z           ]
2026-06-10T07:08:01.3351713Z         },
2026-06-10T07:08:01.3352000Z         "unit": {
2026-06-10T07:08:01.3352295Z           "complete": true,
2026-06-10T07:08:01.3352586Z           "evidence": [
2026-06-10T07:08:01.3352857Z             {
2026-06-10T07:08:01.3353235Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:01.3353535Z               "line": 331
2026-06-10T07:08:01.3353811Z             },
2026-06-10T07:08:01.3354097Z             {
2026-06-10T07:08:01.3354472Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:01.3354770Z               "line": 352
2026-06-10T07:08:01.3355046Z             },
2026-06-10T07:08:01.3355449Z             {
2026-06-10T07:08:01.3355829Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-10T07:08:01.3356140Z               "line": 362
2026-06-10T07:08:01.3356412Z             },
2026-06-10T07:08:01.3356683Z             {
2026-06-10T07:08:01.3357051Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3357448Z               "line": 422
2026-06-10T07:08:01.3357719Z             },
2026-06-10T07:08:01.3357996Z             {
2026-06-10T07:08:01.3358358Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3358645Z               "line": 455
2026-06-10T07:08:01.3358916Z             },
2026-06-10T07:08:01.3359411Z             {
2026-06-10T07:08:01.3359773Z               "path": "crates/spt/src/api/startup.rs",
2026-06-10T07:08:01.3360053Z               "line": 463
2026-06-10T07:08:01.3360334Z             }
2026-06-10T07:08:01.3360596Z           ]
2026-06-10T07:08:01.3360882Z         }
2026-06-10T07:08:01.3361153Z       }
2026-06-10T07:08:01.3361439Z     },
2026-06-10T07:08:01.3361716Z     {
2026-06-10T07:08:01.3362012Z       "id": "REQ-START-4",
2026-06-10T07:08:01.3362452Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-10T07:08:01.3362754Z       "requiredStages": [
2026-06-10T07:08:01.3363036Z         "impl",
2026-06-10T07:08:01.3363364Z         "unit"
2026-06-10T07:08:01.3363641Z       ],
2026-06-10T07:08:01.3363927Z       "stages": {
2026-06-10T07:08:01.3364209Z         "doc": {
2026-06-10T07:08:01.3364509Z           "complete": false,
2026-06-10T07:08:01.3364800Z           "evidence": []
2026-06-10T07:08:01.3365080Z         },
2026-06-10T07:08:01.3365364Z         "impl": {
2026-06-10T07:08:01.3365664Z           "complete": true,
2026-06-10T07:08:01.3365955Z           "evidence": [
2026-06-10T07:08:01.3366222Z             {
2026-06-10T07:08:01.3366599Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.3366885Z               "line": 391
2026-06-10T07:08:01.3367157Z             }
2026-06-10T07:08:01.3367568Z           ]
2026-06-10T07:08:01.3367924Z         },
2026-06-10T07:08:01.3368207Z         "int": {
2026-06-10T07:08:01.3368517Z           "complete": false,
2026-06-10T07:08:01.3368817Z           "evidence": []
2026-06-10T07:08:01.3369175Z         },
2026-06-10T07:08:01.3369485Z         "unit": {
2026-06-10T07:08:01.3369781Z           "complete": true,
2026-06-10T07:08:01.3370086Z           "evidence": [
2026-06-10T07:08:01.3370357Z             {
2026-06-10T07:08:01.3370740Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-10T07:08:01.3371031Z               "line": 660
2026-06-10T07:08:01.3371303Z             }
2026-06-10T07:08:01.3371580Z           ]
2026-06-10T07:08:01.3371852Z         }
2026-06-10T07:08:01.3372139Z       }
2026-06-10T07:08:01.3372415Z     },
2026-06-10T07:08:01.3372667Z     {
2026-06-10T07:08:01.3372968Z       "id": "REQ-STORE-1",
2026-06-10T07:08:01.3375612Z       "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-10T07:08:01.3375929Z       "requiredStages": [
2026-06-10T07:08:01.3376210Z         "impl",
2026-06-10T07:08:01.3376486Z         "unit"
2026-06-10T07:08:01.3376768Z       ],
2026-06-10T07:08:01.3377044Z       "stages": {
2026-06-10T07:08:01.3377321Z         "doc": {
2026-06-10T07:08:01.3377621Z           "complete": false,
2026-06-10T07:08:01.3377918Z           "evidence": []
2026-06-10T07:08:01.3378191Z         },
2026-06-10T07:08:01.3378464Z         "impl": {
2026-06-10T07:08:01.3378758Z           "complete": true,
2026-06-10T07:08:01.3379111Z           "evidence": [
2026-06-10T07:08:01.3379397Z             {
2026-06-10T07:08:01.3379793Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3380085Z               "line": 23
2026-06-10T07:08:01.3380494Z             },
2026-06-10T07:08:01.3380766Z             {
2026-06-10T07:08:01.3381163Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3381444Z               "line": 46
2026-06-10T07:08:01.3381721Z             },
2026-06-10T07:08:01.3381993Z             {
2026-06-10T07:08:01.3382388Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3382798Z               "line": 97
2026-06-10T07:08:01.3383075Z             },
2026-06-10T07:08:01.3383357Z             {
2026-06-10T07:08:01.3383742Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3384033Z               "line": 125
2026-06-10T07:08:01.3384309Z             },
2026-06-10T07:08:01.3384576Z             {
2026-06-10T07:08:01.3384976Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3385268Z               "line": 181
2026-06-10T07:08:01.3385545Z             },
2026-06-10T07:08:01.3385806Z             {
2026-06-10T07:08:01.3386201Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3386499Z               "line": 205
2026-06-10T07:08:01.3386775Z             },
2026-06-10T07:08:01.3387056Z             {
2026-06-10T07:08:01.3387439Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3387734Z               "line": 441
2026-06-10T07:08:01.3388010Z             },
2026-06-10T07:08:01.3388334Z             {
2026-06-10T07:08:01.3388746Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3389138Z               "line": 25
2026-06-10T07:08:01.3389424Z             },
2026-06-10T07:08:01.3389701Z             {
2026-06-10T07:08:01.3390081Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3390377Z               "line": 104
2026-06-10T07:08:01.3390645Z             },
2026-06-10T07:08:01.3390930Z             {
2026-06-10T07:08:01.3391331Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3391620Z               "line": 132
2026-06-10T07:08:01.3391909Z             },
2026-06-10T07:08:01.3392185Z             {
2026-06-10T07:08:01.3392596Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3392892Z               "line": 148
2026-06-10T07:08:01.3393167Z             },
2026-06-10T07:08:01.3393439Z             {
2026-06-10T07:08:01.3393841Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3394137Z               "line": 166
2026-06-10T07:08:01.3394411Z             },
2026-06-10T07:08:01.3394692Z             {
2026-06-10T07:08:01.3395083Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3395374Z               "line": 175
2026-06-10T07:08:01.3395655Z             },
2026-06-10T07:08:01.3395923Z             {
2026-06-10T07:08:01.3396299Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T07:08:01.3396589Z               "line": 16
2026-06-10T07:08:01.3396868Z             },
2026-06-10T07:08:01.3397155Z             {
2026-06-10T07:08:01.3397530Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T07:08:01.3397822Z               "line": 63
2026-06-10T07:08:01.3398093Z             }
2026-06-10T07:08:01.3398371Z           ]
2026-06-10T07:08:01.3398643Z         },
2026-06-10T07:08:01.3398929Z         "int": {
2026-06-10T07:08:01.3399330Z           "complete": false,
2026-06-10T07:08:01.3399623Z           "evidence": []
2026-06-10T07:08:01.3399907Z         },
2026-06-10T07:08:01.3400183Z         "unit": {
2026-06-10T07:08:01.3400488Z           "complete": true,
2026-06-10T07:08:01.3400774Z           "evidence": [
2026-06-10T07:08:01.3401051Z             {
2026-06-10T07:08:01.3401456Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3401748Z               "line": 558
2026-06-10T07:08:01.3402018Z             },
2026-06-10T07:08:01.3402288Z             {
2026-06-10T07:08:01.3402678Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3402965Z               "line": 568
2026-06-10T07:08:01.3403355Z             },
2026-06-10T07:08:01.3403632Z             {
2026-06-10T07:08:01.3404033Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3404318Z               "line": 590
2026-06-10T07:08:01.3404721Z             },
2026-06-10T07:08:01.3405057Z             {
2026-06-10T07:08:01.3405609Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3405982Z               "line": 606
2026-06-10T07:08:01.3406273Z             },
2026-06-10T07:08:01.3406558Z             {
2026-06-10T07:08:01.3406946Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-10T07:08:01.3407229Z               "line": 629
2026-06-10T07:08:01.3407509Z             },
2026-06-10T07:08:01.3407785Z             {
2026-06-10T07:08:01.3408176Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3408472Z               "line": 440
2026-06-10T07:08:01.3408735Z             },
2026-06-10T07:08:01.3409077Z             {
2026-06-10T07:08:01.3409479Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-10T07:08:01.3409765Z               "line": 475
2026-06-10T07:08:01.3410040Z             },
2026-06-10T07:08:01.3410314Z             {
2026-06-10T07:08:01.3410686Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T07:08:01.3410963Z               "line": 120
2026-06-10T07:08:01.3411254Z             },
2026-06-10T07:08:01.3411521Z             {
2026-06-10T07:08:01.3411902Z               "path": "crates/spt-store/src/project.rs",
2026-06-10T07:08:01.3412193Z               "line": 128
2026-06-10T07:08:01.3412466Z             }
2026-06-10T07:08:01.3412740Z           ]
2026-06-10T07:08:01.3413014Z         }
2026-06-10T07:08:01.3413281Z       }
2026-06-10T07:08:01.3413539Z     },
2026-06-10T07:08:01.3413816Z     {
2026-06-10T07:08:01.3414126Z       "id": "REQ-SUBNET-1",
2026-06-10T07:08:01.3415112Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-10T07:08:01.3415422Z       "requiredStages": [
2026-06-10T07:08:01.3415699Z         "impl",
2026-06-10T07:08:01.3415980Z         "unit"
2026-06-10T07:08:01.3416247Z       ],
2026-06-10T07:08:01.3416532Z       "stages": {
2026-06-10T07:08:01.3416953Z         "doc": {
2026-06-10T07:08:01.3417258Z           "complete": false,
2026-06-10T07:08:01.3417554Z           "evidence": []
2026-06-10T07:08:01.3417871Z         },
2026-06-10T07:08:01.3418160Z         "impl": {
2026-06-10T07:08:01.3418465Z           "complete": true,
2026-06-10T07:08:01.3418755Z           "evidence": [
2026-06-10T07:08:01.3419110Z             {
2026-06-10T07:08:01.3419519Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3419811Z               "line": 265
2026-06-10T07:08:01.3420087Z             },
2026-06-10T07:08:01.3420359Z             {
2026-06-10T07:08:01.3420753Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3421041Z               "line": 571
2026-06-10T07:08:01.3421317Z             },
2026-06-10T07:08:01.3421589Z             {
2026-06-10T07:08:01.3421923Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3422209Z               "line": 2455
2026-06-10T07:08:01.3422486Z             },
2026-06-10T07:08:01.3422757Z             {
2026-06-10T07:08:01.3423100Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3423394Z               "line": 2620
2026-06-10T07:08:01.3423671Z             },
2026-06-10T07:08:01.3423943Z             {
2026-06-10T07:08:01.3424272Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3424572Z               "line": 2639
2026-06-10T07:08:01.3424858Z             },
2026-06-10T07:08:01.3425129Z             {
2026-06-10T07:08:01.3425448Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3425735Z               "line": 2700
2026-06-10T07:08:01.3426020Z             },
2026-06-10T07:08:01.3426292Z             {
2026-06-10T07:08:01.3426621Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3427093Z               "line": 2742
2026-06-10T07:08:01.3427359Z             },
2026-06-10T07:08:01.3427636Z             {
2026-06-10T07:08:01.3427980Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3428279Z               "line": 2915
2026-06-10T07:08:01.3428553Z             },
2026-06-10T07:08:01.3429025Z             {
2026-06-10T07:08:01.3429369Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3429655Z               "line": 2985
2026-06-10T07:08:01.3429936Z             },
2026-06-10T07:08:01.3430212Z             {
2026-06-10T07:08:01.3430550Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3430837Z               "line": 3209
2026-06-10T07:08:01.3431113Z             },
2026-06-10T07:08:01.3431402Z             {
2026-06-10T07:08:01.3431745Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.3432036Z               "line": 418
2026-06-10T07:08:01.3432313Z             }
2026-06-10T07:08:01.3432613Z           ]
2026-06-10T07:08:01.3432885Z         },
2026-06-10T07:08:01.3433195Z         "int": {
2026-06-10T07:08:01.3433510Z           "complete": false,
2026-06-10T07:08:01.3433798Z           "evidence": []
2026-06-10T07:08:01.3434077Z         },
2026-06-10T07:08:01.3434344Z         "unit": {
2026-06-10T07:08:01.3434649Z           "complete": true,
2026-06-10T07:08:01.3434950Z           "evidence": [
2026-06-10T07:08:01.3435231Z             {
2026-06-10T07:08:01.3435646Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3435942Z               "line": 1446
2026-06-10T07:08:01.3436223Z             },
2026-06-10T07:08:01.3436495Z             {
2026-06-10T07:08:01.3436838Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3437124Z               "line": 6914
2026-06-10T07:08:01.3437401Z             },
2026-06-10T07:08:01.3437672Z             {
2026-06-10T07:08:01.3437992Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3438287Z               "line": 7084
2026-06-10T07:08:01.3438563Z             },
2026-06-10T07:08:01.3438834Z             {
2026-06-10T07:08:01.3439232Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3439537Z               "line": 7091
2026-06-10T07:08:01.3439814Z             },
2026-06-10T07:08:01.3440076Z             {
2026-06-10T07:08:01.3440410Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3440696Z               "line": 7144
2026-06-10T07:08:01.3440973Z             },
2026-06-10T07:08:01.3441245Z             {
2026-06-10T07:08:01.3441584Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3441882Z               "line": 7161
2026-06-10T07:08:01.3442157Z             },
2026-06-10T07:08:01.3442433Z             {
2026-06-10T07:08:01.3442762Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3443053Z               "line": 7175
2026-06-10T07:08:01.3443329Z             },
2026-06-10T07:08:01.3443616Z             {
2026-06-10T07:08:01.3443959Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3444249Z               "line": 7273
2026-06-10T07:08:01.3444533Z             },
2026-06-10T07:08:01.3444810Z             {
2026-06-10T07:08:01.3445173Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3445453Z               "line": 7423
2026-06-10T07:08:01.3445740Z             }
2026-06-10T07:08:01.3446022Z           ]
2026-06-10T07:08:01.3446307Z         }
2026-06-10T07:08:01.3446588Z       }
2026-06-10T07:08:01.3446864Z     },
2026-06-10T07:08:01.3447140Z     {
2026-06-10T07:08:01.3447440Z       "id": "REQ-SUBNET-2",
2026-06-10T07:08:01.3448165Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-10T07:08:01.3448475Z       "requiredStages": [
2026-06-10T07:08:01.3448751Z         "impl",
2026-06-10T07:08:01.3449123Z         "unit",
2026-06-10T07:08:01.3449408Z         "int"
2026-06-10T07:08:01.3449730Z       ],
2026-06-10T07:08:01.3450007Z       "stages": {
2026-06-10T07:08:01.3450402Z         "doc": {
2026-06-10T07:08:01.3450707Z           "complete": true,
2026-06-10T07:08:01.3450989Z           "evidence": [
2026-06-10T07:08:01.3451276Z             {
2026-06-10T07:08:01.3451744Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-10T07:08:01.3452039Z               "line": 60
2026-06-10T07:08:01.3452410Z             }
2026-06-10T07:08:01.3452698Z           ]
2026-06-10T07:08:01.3452974Z         },
2026-06-10T07:08:01.3453260Z         "impl": {
2026-06-10T07:08:01.3453561Z           "complete": true,
2026-06-10T07:08:01.3453852Z           "evidence": [
2026-06-10T07:08:01.3454133Z             {
2026-06-10T07:08:01.3454495Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.3454795Z               "line": 654
2026-06-10T07:08:01.3455080Z             },
2026-06-10T07:08:01.3455351Z             {
2026-06-10T07:08:01.3455733Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.3456018Z               "line": 775
2026-06-10T07:08:01.3456314Z             },
2026-06-10T07:08:01.3456586Z             {
2026-06-10T07:08:01.3456967Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:01.3457264Z               "line": 448
2026-06-10T07:08:01.3457535Z             },
2026-06-10T07:08:01.3457819Z             {
2026-06-10T07:08:01.3458202Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-10T07:08:01.3458493Z               "line": 578
2026-06-10T07:08:01.3458773Z             },
2026-06-10T07:08:01.3459156Z             {
2026-06-10T07:08:01.3459545Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3459832Z               "line": 26
2026-06-10T07:08:01.3460107Z             },
2026-06-10T07:08:01.3460381Z             {
2026-06-10T07:08:01.3460778Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3461073Z               "line": 60
2026-06-10T07:08:01.3461340Z             },
2026-06-10T07:08:01.3461626Z             {
2026-06-10T07:08:01.3461999Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3462299Z               "line": 168
2026-06-10T07:08:01.3462575Z             },
2026-06-10T07:08:01.3462855Z             {
2026-06-10T07:08:01.3463253Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3463539Z               "line": 295
2026-06-10T07:08:01.3463834Z             },
2026-06-10T07:08:01.3464111Z             {
2026-06-10T07:08:01.3464498Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3464783Z               "line": 417
2026-06-10T07:08:01.3465065Z             },
2026-06-10T07:08:01.3465341Z             {
2026-06-10T07:08:01.3465738Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-10T07:08:01.3466039Z               "line": 252
2026-06-10T07:08:01.3466312Z             },
2026-06-10T07:08:01.3466597Z             {
2026-06-10T07:08:01.3466926Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3467222Z               "line": 2666
2026-06-10T07:08:01.3467504Z             },
2026-06-10T07:08:01.3467781Z             {
2026-06-10T07:08:01.3468115Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3468403Z               "line": 3148
2026-06-10T07:08:01.3468684Z             },
2026-06-10T07:08:01.3469038Z             {
2026-06-10T07:08:01.3469386Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3469682Z               "line": 3771
2026-06-10T07:08:01.3469953Z             }
2026-06-10T07:08:01.3470229Z           ]
2026-06-10T07:08:01.3470505Z         },
2026-06-10T07:08:01.3470789Z         "int": {
2026-06-10T07:08:01.3471085Z           "complete": true,
2026-06-10T07:08:01.3471376Z           "evidence": [
2026-06-10T07:08:01.3471648Z             {
2026-06-10T07:08:01.3472043Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-10T07:08:01.3472338Z               "line": 22
2026-06-10T07:08:01.3472611Z             },
2026-06-10T07:08:01.3472888Z             {
2026-06-10T07:08:01.3473391Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.3473675Z               "line": 575
2026-06-10T07:08:01.3473952Z             },
2026-06-10T07:08:01.3474224Z             {
2026-06-10T07:08:01.3474986Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.3475286Z               "line": 792
2026-06-10T07:08:01.3475707Z             }
2026-06-10T07:08:01.3475982Z           ]
2026-06-10T07:08:01.3476256Z         },
2026-06-10T07:08:01.3476566Z         "unit": {
2026-06-10T07:08:01.3476867Z           "complete": true,
2026-06-10T07:08:01.3477152Z           "evidence": [
2026-06-10T07:08:01.3477429Z             {
2026-06-10T07:08:01.3477849Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3478144Z               "line": 586
2026-06-10T07:08:01.3478426Z             },
2026-06-10T07:08:01.3478703Z             {
2026-06-10T07:08:01.3479130Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3479441Z               "line": 6954
2026-06-10T07:08:01.3479712Z             },
2026-06-10T07:08:01.3479994Z             {
2026-06-10T07:08:01.3480327Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3480614Z               "line": 7620
2026-06-10T07:08:01.3480896Z             }
2026-06-10T07:08:01.3481170Z           ]
2026-06-10T07:08:01.3481448Z         }
2026-06-10T07:08:01.3481730Z       }
2026-06-10T07:08:01.3482016Z     },
2026-06-10T07:08:01.3482284Z     {
2026-06-10T07:08:01.3482589Z       "id": "REQ-SUBNET-3",
2026-06-10T07:08:01.3483434Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-10T07:08:01.3483739Z       "requiredStages": [
2026-06-10T07:08:01.3484022Z         "impl",
2026-06-10T07:08:01.3484297Z         "unit"
2026-06-10T07:08:01.3484574Z       ],
2026-06-10T07:08:01.3484860Z       "stages": {
2026-06-10T07:08:01.3485137Z         "doc": {
2026-06-10T07:08:01.3485446Z           "complete": false,
2026-06-10T07:08:01.3485747Z           "evidence": []
2026-06-10T07:08:01.3486029Z         },
2026-06-10T07:08:01.3486301Z         "impl": {
2026-06-10T07:08:01.3486613Z           "complete": true,
2026-06-10T07:08:01.3487279Z           "evidence": [
2026-06-10T07:08:01.3487584Z             {
2026-06-10T07:08:01.3488023Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3488323Z               "line": 152
2026-06-10T07:08:01.3488615Z             },
2026-06-10T07:08:01.3488892Z             {
2026-06-10T07:08:01.3489390Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3489686Z               "line": 283
2026-06-10T07:08:01.3489958Z             },
2026-06-10T07:08:01.3490244Z             {
2026-06-10T07:08:01.3490649Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3490939Z               "line": 413
2026-06-10T07:08:01.3491217Z             },
2026-06-10T07:08:01.3491494Z             {
2026-06-10T07:08:01.3491905Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3492201Z               "line": 452
2026-06-10T07:08:01.3492477Z             },
2026-06-10T07:08:01.3492749Z             {
2026-06-10T07:08:01.3493134Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3493426Z               "line": 125
2026-06-10T07:08:01.3493713Z             },
2026-06-10T07:08:01.3493989Z             {
2026-06-10T07:08:01.3494366Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3494664Z               "line": 237
2026-06-10T07:08:01.3494938Z             },
2026-06-10T07:08:01.3495219Z             {
2026-06-10T07:08:01.3495597Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3495892Z               "line": 248
2026-06-10T07:08:01.3496173Z             },
2026-06-10T07:08:01.3496445Z             {
2026-06-10T07:08:01.3496837Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3497130Z               "line": 269
2026-06-10T07:08:01.3497553Z             },
2026-06-10T07:08:01.3497824Z             {
2026-06-10T07:08:01.3498211Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3498507Z               "line": 573
2026-06-10T07:08:01.3498778Z             },
2026-06-10T07:08:01.3499132Z             {
2026-06-10T07:08:01.3499593Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3499889Z               "line": 632
2026-06-10T07:08:01.3500161Z             },
2026-06-10T07:08:01.3500437Z             {
2026-06-10T07:08:01.3500823Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.3501100Z               "line": 61
2026-06-10T07:08:01.3501381Z             },
2026-06-10T07:08:01.3501653Z             {
2026-06-10T07:08:01.3502040Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.3502328Z               "line": 90
2026-06-10T07:08:01.3502597Z             },
2026-06-10T07:08:01.3502864Z             {
2026-06-10T07:08:01.3503266Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.3503581Z               "line": 125
2026-06-10T07:08:01.3503852Z             },
2026-06-10T07:08:01.3504128Z             {
2026-06-10T07:08:01.3504510Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-10T07:08:01.3504791Z               "line": 9
2026-06-10T07:08:01.3505096Z             },
2026-06-10T07:08:01.3505369Z             {
2026-06-10T07:08:01.3505712Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3506004Z               "line": 2985
2026-06-10T07:08:01.3506281Z             },
2026-06-10T07:08:01.3506562Z             {
2026-06-10T07:08:01.3506905Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.3507201Z               "line": 445
2026-06-10T07:08:01.3507469Z             }
2026-06-10T07:08:01.3507752Z           ]
2026-06-10T07:08:01.3508026Z         },
2026-06-10T07:08:01.3508308Z         "int": {
2026-06-10T07:08:01.3508618Z           "complete": false,
2026-06-10T07:08:01.3508918Z           "evidence": []
2026-06-10T07:08:01.3509363Z         },
2026-06-10T07:08:01.3509644Z         "unit": {
2026-06-10T07:08:01.3509949Z           "complete": true,
2026-06-10T07:08:01.3510239Z           "evidence": [
2026-06-10T07:08:01.3510519Z             {
2026-06-10T07:08:01.3510934Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3511220Z               "line": 1273
2026-06-10T07:08:01.3511492Z             },
2026-06-10T07:08:01.3511760Z             {
2026-06-10T07:08:01.3512155Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3512446Z               "line": 1575
2026-06-10T07:08:01.3512722Z             },
2026-06-10T07:08:01.3512997Z             {
2026-06-10T07:08:01.3513387Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.3513683Z               "line": 885
2026-06-10T07:08:01.3513949Z             },
2026-06-10T07:08:01.3514222Z             {
2026-06-10T07:08:01.3514627Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3514922Z               "line": 941
2026-06-10T07:08:01.3515204Z             },
2026-06-10T07:08:01.3515477Z             {
2026-06-10T07:08:01.3515860Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3516154Z               "line": 990
2026-06-10T07:08:01.3516436Z             },
2026-06-10T07:08:01.3516708Z             {
2026-06-10T07:08:01.3517089Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3517385Z               "line": 1049
2026-06-10T07:08:01.3517657Z             },
2026-06-10T07:08:01.3517933Z             {
2026-06-10T07:08:01.3518317Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-10T07:08:01.3518606Z               "line": 233
2026-06-10T07:08:01.3518873Z             },
2026-06-10T07:08:01.3519221Z             {
2026-06-10T07:08:01.3519608Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-10T07:08:01.3520018Z               "line": 49
2026-06-10T07:08:01.3520299Z             },
2026-06-10T07:08:01.3520624Z             {
2026-06-10T07:08:01.3520953Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3521233Z               "line": 7273
2026-06-10T07:08:01.3521504Z             },
2026-06-10T07:08:01.3521775Z             {
2026-06-10T07:08:01.3522187Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3522478Z               "line": 7378
2026-06-10T07:08:01.3522749Z             },
2026-06-10T07:08:01.3523021Z             {
2026-06-10T07:08:01.3523348Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3523632Z               "line": 7586
2026-06-10T07:08:01.3523904Z             }
2026-06-10T07:08:01.3524167Z           ]
2026-06-10T07:08:01.3524444Z         }
2026-06-10T07:08:01.3524711Z       }
2026-06-10T07:08:01.3524977Z     },
2026-06-10T07:08:01.3525248Z     {
2026-06-10T07:08:01.3525545Z       "id": "REQ-SUBNET-4",
2026-06-10T07:08:01.3526438Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-10T07:08:01.3526753Z       "requiredStages": [
2026-06-10T07:08:01.3527034Z         "impl",
2026-06-10T07:08:01.3527306Z         "unit"
2026-06-10T07:08:01.3527582Z       ],
2026-06-10T07:08:01.3527858Z       "stages": {
2026-06-10T07:08:01.3528120Z         "doc": {
2026-06-10T07:08:01.3528430Z           "complete": true,
2026-06-10T07:08:01.3528716Z           "evidence": [
2026-06-10T07:08:01.3529056Z             {
2026-06-10T07:08:01.3529529Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-10T07:08:01.3529820Z               "line": 60
2026-06-10T07:08:01.3530096Z             }
2026-06-10T07:08:01.3530367Z           ]
2026-06-10T07:08:01.3530640Z         },
2026-06-10T07:08:01.3530916Z         "impl": {
2026-06-10T07:08:01.3531207Z           "complete": true,
2026-06-10T07:08:01.3531494Z           "evidence": [
2026-06-10T07:08:01.3531769Z             {
2026-06-10T07:08:01.3532108Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3532384Z               "line": 2455
2026-06-10T07:08:01.3532660Z             },
2026-06-10T07:08:01.3532927Z             {
2026-06-10T07:08:01.3533266Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3533566Z               "line": 3738
2026-06-10T07:08:01.3533861Z             },
2026-06-10T07:08:01.3538581Z             {
2026-06-10T07:08:01.3539033Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3539333Z               "line": 3771
2026-06-10T07:08:01.3539607Z             }
2026-06-10T07:08:01.3539894Z           ]
2026-06-10T07:08:01.3540165Z         },
2026-06-10T07:08:01.3540452Z         "int": {
2026-06-10T07:08:01.3540762Z           "complete": false,
2026-06-10T07:08:01.3541048Z           "evidence": []
2026-06-10T07:08:01.3541334Z         },
2026-06-10T07:08:01.3541610Z         "unit": {
2026-06-10T07:08:01.3541915Z           "complete": true,
2026-06-10T07:08:01.3542205Z           "evidence": [
2026-06-10T07:08:01.3542500Z             {
2026-06-10T07:08:01.3542843Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3543148Z               "line": 7070
2026-06-10T07:08:01.3543426Z             },
2026-06-10T07:08:01.3543697Z             {
2026-06-10T07:08:01.3544036Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3544322Z               "line": 7144
2026-06-10T07:08:01.3544598Z             }
2026-06-10T07:08:01.3544876Z           ]
2026-06-10T07:08:01.3545143Z         }
2026-06-10T07:08:01.3545420Z       }
2026-06-10T07:08:01.3545691Z     },
2026-06-10T07:08:01.3545964Z     {
2026-06-10T07:08:01.3546264Z       "id": "REQ-SUBNET-5",
2026-06-10T07:08:01.3549667Z       "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-10T07:08:01.3550139Z       "requiredStages": [
2026-06-10T07:08:01.3550416Z         "impl",
2026-06-10T07:08:01.3550698Z         "unit",
2026-06-10T07:08:01.3550955Z         "int"
2026-06-10T07:08:01.3551240Z       ],
2026-06-10T07:08:01.3551526Z       "stages": {
2026-06-10T07:08:01.3551913Z         "doc": {
2026-06-10T07:08:01.3552219Z           "complete": false,
2026-06-10T07:08:01.3552509Z           "evidence": []
2026-06-10T07:08:01.3552789Z         },
2026-06-10T07:08:01.3553113Z         "impl": {
2026-06-10T07:08:01.3553418Z           "complete": true,
2026-06-10T07:08:01.3553718Z           "evidence": [
2026-06-10T07:08:01.3553986Z             {
2026-06-10T07:08:01.3554376Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-10T07:08:01.3554667Z               "line": 126
2026-06-10T07:08:01.3554943Z             },
2026-06-10T07:08:01.3555218Z             {
2026-06-10T07:08:01.3555608Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-10T07:08:01.3555913Z               "line": 413
2026-06-10T07:08:01.3556186Z             },
2026-06-10T07:08:01.3556457Z             {
2026-06-10T07:08:01.3556838Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3557125Z               "line": 74
2026-06-10T07:08:01.3557397Z             },
2026-06-10T07:08:01.3557684Z             {
2026-06-10T07:08:01.3558067Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.3558351Z               "line": 357
2026-06-10T07:08:01.3558633Z             },
2026-06-10T07:08:01.3558899Z             {
2026-06-10T07:08:01.3559391Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T07:08:01.3559673Z               "line": 31
2026-06-10T07:08:01.3559997Z             },
2026-06-10T07:08:01.3560269Z             {
2026-06-10T07:08:01.3560667Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T07:08:01.3560957Z               "line": 50
2026-06-10T07:08:01.3561243Z             },
2026-06-10T07:08:01.3561515Z             {
2026-06-10T07:08:01.3561906Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T07:08:01.3562197Z               "line": 69
2026-06-10T07:08:01.3562474Z             },
2026-06-10T07:08:01.3562749Z             {
2026-06-10T07:08:01.3563160Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T07:08:01.3563463Z               "line": 113
2026-06-10T07:08:01.3563750Z             },
2026-06-10T07:08:01.3564021Z             {
2026-06-10T07:08:01.3564423Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-10T07:08:01.3564723Z               "line": 25
2026-06-10T07:08:01.3564999Z             },
2026-06-10T07:08:01.3565275Z             {
2026-06-10T07:08:01.3565670Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-10T07:08:01.3565958Z               "line": 34
2026-06-10T07:08:01.3566239Z             },
2026-06-10T07:08:01.3566521Z             {
2026-06-10T07:08:01.3566922Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T07:08:01.3567203Z               "line": 17
2026-06-10T07:08:01.3567479Z             },
2026-06-10T07:08:01.3567751Z             {
2026-06-10T07:08:01.3568094Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3568390Z               "line": 3696
2026-06-10T07:08:01.3568669Z             },
2026-06-10T07:08:01.3569021Z             {
2026-06-10T07:08:01.3569360Z               "path": "crates/spt/src/wansend.rs",
2026-06-10T07:08:01.3569646Z               "line": 419
2026-06-10T07:08:01.3569913Z             }
2026-06-10T07:08:01.3570190Z           ]
2026-06-10T07:08:01.3570452Z         },
2026-06-10T07:08:01.3570733Z         "int": {
2026-06-10T07:08:01.3571032Z           "complete": true,
2026-06-10T07:08:01.3571320Z           "evidence": [
2026-06-10T07:08:01.3571602Z             {
2026-06-10T07:08:01.3571992Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.3572284Z               "line": 814
2026-06-10T07:08:01.3572704Z             }
2026-06-10T07:08:01.3572975Z           ]
2026-06-10T07:08:01.3573247Z         },
2026-06-10T07:08:01.3573533Z         "unit": {
2026-06-10T07:08:01.3573824Z           "complete": true,
2026-06-10T07:08:01.3574111Z           "evidence": [
2026-06-10T07:08:01.3574387Z             {
2026-06-10T07:08:01.3574857Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:01.3575149Z               "line": 341
2026-06-10T07:08:01.3575425Z             },
2026-06-10T07:08:01.3575697Z             {
2026-06-10T07:08:01.3576092Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-10T07:08:01.3576381Z               "line": 151
2026-06-10T07:08:01.3576653Z             },
2026-06-10T07:08:01.3576929Z             {
2026-06-10T07:08:01.3577315Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-10T07:08:01.3577611Z               "line": 61
2026-06-10T07:08:01.3577883Z             },
2026-06-10T07:08:01.3578160Z             {
2026-06-10T07:08:01.3578546Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T07:08:01.3578838Z               "line": 111
2026-06-10T07:08:01.3579201Z             },
2026-06-10T07:08:01.3579472Z             {
2026-06-10T07:08:01.3579853Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T07:08:01.3580149Z               "line": 138
2026-06-10T07:08:01.3580431Z             },
2026-06-10T07:08:01.3580697Z             {
2026-06-10T07:08:01.3581093Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-10T07:08:01.3581385Z               "line": 148
2026-06-10T07:08:01.3581654Z             },
2026-06-10T07:08:01.3581928Z             {
2026-06-10T07:08:01.3582257Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3582548Z               "line": 6971
2026-06-10T07:08:01.3582811Z             }
2026-06-10T07:08:01.3583073Z           ]
2026-06-10T07:08:01.3583364Z         }
2026-06-10T07:08:01.3583641Z       }
2026-06-10T07:08:01.3583914Z     },
2026-06-10T07:08:01.3584190Z     {
2026-06-10T07:08:01.3584540Z       "id": "REQ-SUBNET-6",
2026-06-10T07:08:01.3586661Z       "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-10T07:08:01.3586974Z       "requiredStages": [
2026-06-10T07:08:01.3587256Z         "impl",
2026-06-10T07:08:01.3587527Z         "unit"
2026-06-10T07:08:01.3587809Z       ],
2026-06-10T07:08:01.3588095Z       "stages": {
2026-06-10T07:08:01.3588376Z         "doc": {
2026-06-10T07:08:01.3588681Z           "complete": false,
2026-06-10T07:08:01.3589111Z           "evidence": []
2026-06-10T07:08:01.3589388Z         },
2026-06-10T07:08:01.3589662Z         "impl": {
2026-06-10T07:08:01.3589960Z           "complete": true,
2026-06-10T07:08:01.3590246Z           "evidence": [
2026-06-10T07:08:01.3590522Z             {
2026-06-10T07:08:01.3590914Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3591204Z               "line": 238
2026-06-10T07:08:01.3591481Z             },
2026-06-10T07:08:01.3591748Z             {
2026-06-10T07:08:01.3592082Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3592370Z               "line": 3354
2026-06-10T07:08:01.3592656Z             },
2026-06-10T07:08:01.3592933Z             {
2026-06-10T07:08:01.3593261Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3593557Z               "line": 3371
2026-06-10T07:08:01.3593829Z             },
2026-06-10T07:08:01.3594115Z             {
2026-06-10T07:08:01.3594444Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3594730Z               "line": 3424
2026-06-10T07:08:01.3595005Z             },
2026-06-10T07:08:01.3595297Z             {
2026-06-10T07:08:01.3595630Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3595931Z               "line": 3447
2026-06-10T07:08:01.3596311Z             }
2026-06-10T07:08:01.3596584Z           ]
2026-06-10T07:08:01.3596864Z         },
2026-06-10T07:08:01.3597138Z         "int": {
2026-06-10T07:08:01.3597441Z           "complete": false,
2026-06-10T07:08:01.3597744Z           "evidence": []
2026-06-10T07:08:01.3598020Z         },
2026-06-10T07:08:01.3598307Z         "unit": {
2026-06-10T07:08:01.3598698Z           "complete": true,
2026-06-10T07:08:01.3599127Z           "evidence": [
2026-06-10T07:08:01.3599407Z             {
2026-06-10T07:08:01.3599750Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3600051Z               "line": 6985
2026-06-10T07:08:01.3600327Z             },
2026-06-10T07:08:01.3600602Z             {
2026-06-10T07:08:01.3600936Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3601237Z               "line": 7018
2026-06-10T07:08:01.3601517Z             },
2026-06-10T07:08:01.3601788Z             {
2026-06-10T07:08:01.3602123Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3602418Z               "line": 7027
2026-06-10T07:08:01.3602698Z             }
2026-06-10T07:08:01.3602968Z           ]
2026-06-10T07:08:01.3603245Z         }
2026-06-10T07:08:01.3603522Z       }
2026-06-10T07:08:01.3603794Z     },
2026-06-10T07:08:01.3604070Z     {
2026-06-10T07:08:01.3604414Z       "id": "REQ-SUBNET-7",
2026-06-10T07:08:01.3609085Z       "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-10T07:08:01.3609400Z       "requiredStages": [
2026-06-10T07:08:01.3609687Z         "impl",
2026-06-10T07:08:01.3609972Z         "unit"
2026-06-10T07:08:01.3610241Z       ],
2026-06-10T07:08:01.3610527Z       "stages": {
2026-06-10T07:08:01.3610797Z         "doc": {
2026-06-10T07:08:01.3611095Z           "complete": false,
2026-06-10T07:08:01.3611385Z           "evidence": []
2026-06-10T07:08:01.3611657Z         },
2026-06-10T07:08:01.3611957Z         "impl": {
2026-06-10T07:08:01.3612253Z           "complete": true,
2026-06-10T07:08:01.3612544Z           "evidence": [
2026-06-10T07:08:01.3612816Z             {
2026-06-10T07:08:01.3613211Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-10T07:08:01.3613499Z               "line": 17
2026-06-10T07:08:01.3613772Z             },
2026-06-10T07:08:01.3614053Z             {
2026-06-10T07:08:01.3614439Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3614734Z               "line": 103
2026-06-10T07:08:01.3615016Z             },
2026-06-10T07:08:01.3615289Z             {
2026-06-10T07:08:01.3615683Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-10T07:08:01.3615975Z               "line": 312
2026-06-10T07:08:01.3616250Z             },
2026-06-10T07:08:01.3616521Z             {
2026-06-10T07:08:01.3616908Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.3617199Z               "line": 388
2026-06-10T07:08:01.3617480Z             },
2026-06-10T07:08:01.3617761Z             {
2026-06-10T07:08:01.3618163Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3618456Z               "line": 160
2026-06-10T07:08:01.3618730Z             },
2026-06-10T07:08:01.3619083Z             {
2026-06-10T07:08:01.3619494Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3619785Z               "line": 417
2026-06-10T07:08:01.3620071Z             },
2026-06-10T07:08:01.3620347Z             {
2026-06-10T07:08:01.3620758Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3621167Z               "line": 590
2026-06-10T07:08:01.3621447Z             },
2026-06-10T07:08:01.3621722Z             {
2026-06-10T07:08:01.3622108Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3622395Z               "line": 630
2026-06-10T07:08:01.3622662Z             },
2026-06-10T07:08:01.3622938Z             {
2026-06-10T07:08:01.3623428Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3623724Z               "line": 686
2026-06-10T07:08:01.3623999Z             },
2026-06-10T07:08:01.3624269Z             {
2026-06-10T07:08:01.3624736Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.3625108Z               "line": 136
2026-06-10T07:08:01.3625389Z             },
2026-06-10T07:08:01.3625662Z             {
2026-06-10T07:08:01.3626047Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3626362Z               "line": 139
2026-06-10T07:08:01.3626633Z             }
2026-06-10T07:08:01.3626934Z           ]
2026-06-10T07:08:01.3627206Z         },
2026-06-10T07:08:01.3627487Z         "int": {
2026-06-10T07:08:01.3627784Z           "complete": false,
2026-06-10T07:08:01.3628079Z           "evidence": []
2026-06-10T07:08:01.3628345Z         },
2026-06-10T07:08:01.3628622Z         "unit": {
2026-06-10T07:08:01.3628911Z           "complete": true,
2026-06-10T07:08:01.3629276Z           "evidence": [
2026-06-10T07:08:01.3629619Z             {
2026-06-10T07:08:01.3630007Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-10T07:08:01.3630297Z               "line": 136
2026-06-10T07:08:01.3630573Z             },
2026-06-10T07:08:01.3630850Z             {
2026-06-10T07:08:01.3631237Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-10T07:08:01.3631522Z               "line": 156
2026-06-10T07:08:01.3631802Z             },
2026-06-10T07:08:01.3632077Z             {
2026-06-10T07:08:01.3632534Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3632830Z               "line": 905
2026-06-10T07:08:01.3633101Z             },
2026-06-10T07:08:01.3633383Z             {
2026-06-10T07:08:01.3633779Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-10T07:08:01.3634070Z               "line": 927
2026-06-10T07:08:01.3634350Z             },
2026-06-10T07:08:01.3634615Z             {
2026-06-10T07:08:01.3635020Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-10T07:08:01.3635310Z               "line": 1419
2026-06-10T07:08:01.3635593Z             },
2026-06-10T07:08:01.3635868Z             {
2026-06-10T07:08:01.3636250Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-10T07:08:01.3636540Z               "line": 985
2026-06-10T07:08:01.3636804Z             }
2026-06-10T07:08:01.3637081Z           ]
2026-06-10T07:08:01.3637355Z         }
2026-06-10T07:08:01.3637632Z       }
2026-06-10T07:08:01.3637899Z     },
2026-06-10T07:08:01.3638171Z     {
2026-06-10T07:08:01.3638476Z       "id": "REQ-SUBNET-8",
2026-06-10T07:08:01.3641686Z       "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-10T07:08:01.3641996Z       "requiredStages": [
2026-06-10T07:08:01.3642273Z         "impl",
2026-06-10T07:08:01.3642548Z         "unit"
2026-06-10T07:08:01.3642823Z       ],
2026-06-10T07:08:01.3643089Z       "stages": {
2026-06-10T07:08:01.3643370Z         "doc": {
2026-06-10T07:08:01.3643657Z           "complete": false,
2026-06-10T07:08:01.3643953Z           "evidence": []
2026-06-10T07:08:01.3644229Z         },
2026-06-10T07:08:01.3644506Z         "impl": {
2026-06-10T07:08:01.3644803Z           "complete": true,
2026-06-10T07:08:01.3645091Z           "evidence": [
2026-06-10T07:08:01.3645514Z             {
2026-06-10T07:08:01.3645852Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3646153Z               "line": 2743
2026-06-10T07:08:01.3646429Z             },
2026-06-10T07:08:01.3646702Z             {
2026-06-10T07:08:01.3647040Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3647420Z               "line": 2772
2026-06-10T07:08:01.3647707Z             },
2026-06-10T07:08:01.3647978Z             {
2026-06-10T07:08:01.3648312Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3648603Z               "line": 2789
2026-06-10T07:08:01.3648879Z             },
2026-06-10T07:08:01.3649252Z             {
2026-06-10T07:08:01.3649594Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3649891Z               "line": 3210
2026-06-10T07:08:01.3650165Z             }
2026-06-10T07:08:01.3650439Z           ]
2026-06-10T07:08:01.3650711Z         },
2026-06-10T07:08:01.3650992Z         "int": {
2026-06-10T07:08:01.3651292Z           "complete": false,
2026-06-10T07:08:01.3651598Z           "evidence": []
2026-06-10T07:08:01.3651889Z         },
2026-06-10T07:08:01.3652166Z         "unit": {
2026-06-10T07:08:01.3652467Z           "complete": true,
2026-06-10T07:08:01.3652753Z           "evidence": [
2026-06-10T07:08:01.3653037Z             {
2026-06-10T07:08:01.3653393Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3653679Z               "line": 7175
2026-06-10T07:08:01.3653955Z             }
2026-06-10T07:08:01.3654226Z           ]
2026-06-10T07:08:01.3654837Z         }
2026-06-10T07:08:01.3655118Z       }
2026-06-10T07:08:01.3655381Z     },
2026-06-10T07:08:01.3655670Z     {
2026-06-10T07:08:01.3655969Z       "id": "REQ-TERM-1",
2026-06-10T07:08:01.3656493Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-10T07:08:01.3656798Z       "requiredStages": [
2026-06-10T07:08:01.3657070Z         "impl",
2026-06-10T07:08:01.3657342Z         "unit"
2026-06-10T07:08:01.3657614Z       ],
2026-06-10T07:08:01.3657906Z       "stages": {
2026-06-10T07:08:01.3658173Z         "doc": {
2026-06-10T07:08:01.3658471Z           "complete": false,
2026-06-10T07:08:01.3658761Z           "evidence": []
2026-06-10T07:08:01.3659110Z         },
2026-06-10T07:08:01.3659401Z         "impl": {
2026-06-10T07:08:01.3659696Z           "complete": true,
2026-06-10T07:08:01.3659977Z           "evidence": [
2026-06-10T07:08:01.3660254Z             {
2026-06-10T07:08:01.3660606Z               "path": "crates/spt-term/src/pty.rs",
2026-06-10T07:08:01.3660890Z               "line": 59
2026-06-10T07:08:01.3661172Z             },
2026-06-10T07:08:01.3661444Z             {
2026-06-10T07:08:01.3661801Z               "path": "crates/spt-term/src/pty.rs",
2026-06-10T07:08:01.3662092Z               "line": 171
2026-06-10T07:08:01.3662360Z             },
2026-06-10T07:08:01.3662641Z             {
2026-06-10T07:08:01.3663003Z               "path": "crates/spt-term/src/surface.rs",
2026-06-10T07:08:01.3663295Z               "line": 100
2026-06-10T07:08:01.3663573Z             }
2026-06-10T07:08:01.3663847Z           ]
2026-06-10T07:08:01.3664124Z         },
2026-06-10T07:08:01.3664401Z         "int": {
2026-06-10T07:08:01.3664706Z           "complete": false,
2026-06-10T07:08:01.3664992Z           "evidence": []
2026-06-10T07:08:01.3665269Z         },
2026-06-10T07:08:01.3665546Z         "unit": {
2026-06-10T07:08:01.3665852Z           "complete": true,
2026-06-10T07:08:01.3666140Z           "evidence": [
2026-06-10T07:08:01.3666414Z             {
2026-06-10T07:08:01.3666791Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-10T07:08:01.3667121Z               "line": 24
2026-06-10T07:08:01.3667411Z             },
2026-06-10T07:08:01.3667687Z             {
2026-06-10T07:08:01.3668065Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-10T07:08:01.3668360Z               "line": 56
2026-06-10T07:08:01.3668636Z             }
2026-06-10T07:08:01.3668912Z           ]
2026-06-10T07:08:01.3669269Z         }
2026-06-10T07:08:01.3669756Z       }
2026-06-10T07:08:01.3670033Z     },
2026-06-10T07:08:01.3670310Z     {
2026-06-10T07:08:01.3670610Z       "id": "REQ-TERM-2",
2026-06-10T07:08:01.3671171Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-10T07:08:01.3671479Z       "requiredStages": [
2026-06-10T07:08:01.3671755Z         "impl",
2026-06-10T07:08:01.3672131Z         "unit"
2026-06-10T07:08:01.3672408Z       ],
2026-06-10T07:08:01.3672695Z       "stages": {
2026-06-10T07:08:01.3672976Z         "doc": {
2026-06-10T07:08:01.3673277Z           "complete": false,
2026-06-10T07:08:01.3673582Z           "evidence": []
2026-06-10T07:08:01.3673855Z         },
2026-06-10T07:08:01.3674143Z         "impl": {
2026-06-10T07:08:01.3674441Z           "complete": true,
2026-06-10T07:08:01.3674731Z           "evidence": [
2026-06-10T07:08:01.3675018Z             {
2026-06-10T07:08:01.3675380Z               "path": "crates/spt-term/src/surface.rs",
2026-06-10T07:08:01.3675680Z               "line": 117
2026-06-10T07:08:01.3675967Z             },
2026-06-10T07:08:01.3676243Z             {
2026-06-10T07:08:01.3676604Z               "path": "crates/spt-term/src/surface.rs",
2026-06-10T07:08:01.3676898Z               "line": 127
2026-06-10T07:08:01.3677180Z             }
2026-06-10T07:08:01.3677452Z           ]
2026-06-10T07:08:01.3677728Z         },
2026-06-10T07:08:01.3678015Z         "int": {
2026-06-10T07:08:01.3678315Z           "complete": false,
2026-06-10T07:08:01.3678605Z           "evidence": []
2026-06-10T07:08:01.3678881Z         },
2026-06-10T07:08:01.3679250Z         "unit": {
2026-06-10T07:08:01.3679548Z           "complete": true,
2026-06-10T07:08:01.3679834Z           "evidence": [
2026-06-10T07:08:01.3680115Z             {
2026-06-10T07:08:01.3680492Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-10T07:08:01.3680782Z               "line": 46
2026-06-10T07:08:01.3681060Z             },
2026-06-10T07:08:01.3681336Z             {
2026-06-10T07:08:01.3681707Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-10T07:08:01.3682005Z               "line": 77
2026-06-10T07:08:01.3682283Z             }
2026-06-10T07:08:01.3682564Z           ]
2026-06-10T07:08:01.3682841Z         }
2026-06-10T07:08:01.3683112Z       }
2026-06-10T07:08:01.3683388Z     },
2026-06-10T07:08:01.3683660Z     {
2026-06-10T07:08:01.3683965Z       "id": "REQ-TERM-3",
2026-06-10T07:08:01.3684395Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-10T07:08:01.3684708Z       "requiredStages": [
2026-06-10T07:08:01.3684986Z         "impl",
2026-06-10T07:08:01.3685263Z         "unit"
2026-06-10T07:08:01.3685544Z       ],
2026-06-10T07:08:01.3685817Z       "stages": {
2026-06-10T07:08:01.3686102Z         "doc": {
2026-06-10T07:08:01.3686408Z           "complete": false,
2026-06-10T07:08:01.3686929Z           "evidence": []
2026-06-10T07:08:01.3687207Z         },
2026-06-10T07:08:01.3687487Z         "impl": {
2026-06-10T07:08:01.3687783Z           "complete": true,
2026-06-10T07:08:01.3688078Z           "evidence": [
2026-06-10T07:08:01.3688355Z             {
2026-06-10T07:08:01.3688717Z               "path": "crates/spt-term/src/stream.rs",
2026-06-10T07:08:01.3689084Z               "line": 71
2026-06-10T07:08:01.3689360Z             }
2026-06-10T07:08:01.3689642Z           ]
2026-06-10T07:08:01.3689919Z         },
2026-06-10T07:08:01.3690199Z         "int": {
2026-06-10T07:08:01.3690504Z           "complete": false,
2026-06-10T07:08:01.3690791Z           "evidence": []
2026-06-10T07:08:01.3691072Z         },
2026-06-10T07:08:01.3691347Z         "unit": {
2026-06-10T07:08:01.3691648Z           "complete": true,
2026-06-10T07:08:01.3691939Z           "evidence": [
2026-06-10T07:08:01.3692216Z             {
2026-06-10T07:08:01.3692589Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-10T07:08:01.3692876Z               "line": 37
2026-06-10T07:08:01.3693152Z             },
2026-06-10T07:08:01.3693425Z             {
2026-06-10T07:08:01.3693796Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-10T07:08:01.3694215Z               "line": 67
2026-06-10T07:08:01.3694492Z             }
2026-06-10T07:08:01.3694772Z           ]
2026-06-10T07:08:01.3695041Z         }
2026-06-10T07:08:01.3695330Z       }
2026-06-10T07:08:01.3695599Z     },
2026-06-10T07:08:01.3695875Z     {
2026-06-10T07:08:01.3696181Z       "id": "REQ-TERM-4",
2026-06-10T07:08:01.3697368Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-10T07:08:01.3697683Z       "requiredStages": [
2026-06-10T07:08:01.3697962Z         "impl",
2026-06-10T07:08:01.3698243Z         "unit",
2026-06-10T07:08:01.3698515Z         "int"
2026-06-10T07:08:01.3698796Z       ],
2026-06-10T07:08:01.3699306Z       "stages": {
2026-06-10T07:08:01.3699578Z         "doc": {
2026-06-10T07:08:01.3699883Z           "complete": true,
2026-06-10T07:08:01.3700169Z           "evidence": [
2026-06-10T07:08:01.3700446Z             {
2026-06-10T07:08:01.3700779Z               "path": "docs/MANIFEST.md",
2026-06-10T07:08:01.3701069Z               "line": 115
2026-06-10T07:08:01.3701346Z             }
2026-06-10T07:08:01.3701617Z           ]
2026-06-10T07:08:01.3701898Z         },
2026-06-10T07:08:01.3702180Z         "impl": {
2026-06-10T07:08:01.3702484Z           "complete": true,
2026-06-10T07:08:01.3702790Z           "evidence": [
2026-06-10T07:08:01.3703070Z             {
2026-06-10T07:08:01.3703445Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.3703732Z               "line": 613
2026-06-10T07:08:01.3704008Z             },
2026-06-10T07:08:01.3704280Z             {
2026-06-10T07:08:01.3704656Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3704939Z               "line": 41
2026-06-10T07:08:01.3705215Z             },
2026-06-10T07:08:01.3705492Z             {
2026-06-10T07:08:01.3705842Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3706131Z               "line": 91
2026-06-10T07:08:01.3706402Z             },
2026-06-10T07:08:01.3706736Z             {
2026-06-10T07:08:01.3707099Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3707394Z               "line": 152
2026-06-10T07:08:01.3707661Z             },
2026-06-10T07:08:01.3707933Z             {
2026-06-10T07:08:01.3708318Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3708607Z               "line": 221
2026-06-10T07:08:01.3708883Z             },
2026-06-10T07:08:01.3709231Z             {
2026-06-10T07:08:01.3709617Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T07:08:01.3709909Z               "line": 20
2026-06-10T07:08:01.3710185Z             },
2026-06-10T07:08:01.3710457Z             {
2026-06-10T07:08:01.3710834Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T07:08:01.3711133Z               "line": 222
2026-06-10T07:08:01.3711406Z             },
2026-06-10T07:08:01.3711687Z             {
2026-06-10T07:08:01.3712078Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T07:08:01.3712368Z               "line": 242
2026-06-10T07:08:01.3712645Z             },
2026-06-10T07:08:01.3712913Z             {
2026-06-10T07:08:01.3713294Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.3713588Z               "line": 625
2026-06-10T07:08:01.3713871Z             },
2026-06-10T07:08:01.3714153Z             {
2026-06-10T07:08:01.3714506Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3714798Z               "line": 162
2026-06-10T07:08:01.3715069Z             },
2026-06-10T07:08:01.3715344Z             {
2026-06-10T07:08:01.3715698Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3715988Z               "line": 206
2026-06-10T07:08:01.3716264Z             },
2026-06-10T07:08:01.3716539Z             {
2026-06-10T07:08:01.3716896Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3717178Z               "line": 233
2026-06-10T07:08:01.3717568Z             },
2026-06-10T07:08:01.3717846Z             {
2026-06-10T07:08:01.3718174Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3718469Z               "line": 860
2026-06-10T07:08:01.3718742Z             }
2026-06-10T07:08:01.3719091Z           ]
2026-06-10T07:08:01.3719363Z         },
2026-06-10T07:08:01.3719740Z         "int": {
2026-06-10T07:08:01.3720040Z           "complete": true,
2026-06-10T07:08:01.3720331Z           "evidence": [
2026-06-10T07:08:01.3720613Z             {
2026-06-10T07:08:01.3720984Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-10T07:08:01.3721271Z               "line": 18
2026-06-10T07:08:01.3721543Z             }
2026-06-10T07:08:01.3721813Z           ]
2026-06-10T07:08:01.3722084Z         },
2026-06-10T07:08:01.3722351Z         "unit": {
2026-06-10T07:08:01.3722642Z           "complete": true,
2026-06-10T07:08:01.3722928Z           "evidence": [
2026-06-10T07:08:01.3723205Z             {
2026-06-10T07:08:01.3723586Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3723896Z               "line": 259
2026-06-10T07:08:01.3724180Z             },
2026-06-10T07:08:01.3724441Z             {
2026-06-10T07:08:01.3724819Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3725105Z               "line": 277
2026-06-10T07:08:01.3725395Z             },
2026-06-10T07:08:01.3725662Z             {
2026-06-10T07:08:01.3726039Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3726331Z               "line": 289
2026-06-10T07:08:01.3726602Z             },
2026-06-10T07:08:01.3726886Z             {
2026-06-10T07:08:01.3727261Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3727551Z               "line": 304
2026-06-10T07:08:01.3727823Z             },
2026-06-10T07:08:01.3728100Z             {
2026-06-10T07:08:01.3728481Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3728776Z               "line": 320
2026-06-10T07:08:01.3729130Z             },
2026-06-10T07:08:01.3729410Z             {
2026-06-10T07:08:01.3729784Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3730075Z               "line": 346
2026-06-10T07:08:01.3730356Z             },
2026-06-10T07:08:01.3730629Z             {
2026-06-10T07:08:01.3731000Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3731296Z               "line": 361
2026-06-10T07:08:01.3731567Z             },
2026-06-10T07:08:01.3731850Z             {
2026-06-10T07:08:01.3732215Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-10T07:08:01.3732512Z               "line": 391
2026-06-10T07:08:01.3732788Z             },
2026-06-10T07:08:01.3733065Z             {
2026-06-10T07:08:01.3733446Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T07:08:01.3733732Z               "line": 365
2026-06-10T07:08:01.3734014Z             },
2026-06-10T07:08:01.3734285Z             {
2026-06-10T07:08:01.3734680Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T07:08:01.3734973Z               "line": 382
2026-06-10T07:08:01.3735245Z             },
2026-06-10T07:08:01.3735525Z             {
2026-06-10T07:08:01.3735893Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T07:08:01.3736179Z               "line": 411
2026-06-10T07:08:01.3736456Z             },
2026-06-10T07:08:01.3736727Z             {
2026-06-10T07:08:01.3737109Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-10T07:08:01.3737380Z               "line": 428
2026-06-10T07:08:01.3737659Z             },
2026-06-10T07:08:01.3737931Z             {
2026-06-10T07:08:01.3738317Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.3738603Z               "line": 828
2026-06-10T07:08:01.3738880Z             },
2026-06-10T07:08:01.3739232Z             {
2026-06-10T07:08:01.3739603Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.3739989Z               "line": 835
2026-06-10T07:08:01.3740259Z             },
2026-06-10T07:08:01.3740522Z             {
2026-06-10T07:08:01.3740898Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.3741180Z               "line": 850
2026-06-10T07:08:01.3741460Z             },
2026-06-10T07:08:01.3741733Z             {
2026-06-10T07:08:01.3742204Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3742490Z               "line": 420
2026-06-10T07:08:01.3742767Z             },
2026-06-10T07:08:01.3743048Z             {
2026-06-10T07:08:01.3743401Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3743701Z               "line": 458
2026-06-10T07:08:01.3743969Z             },
2026-06-10T07:08:01.3744245Z             {
2026-06-10T07:08:01.3744598Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3744899Z               "line": 471
2026-06-10T07:08:01.3745173Z             },
2026-06-10T07:08:01.3745451Z             {
2026-06-10T07:08:01.3745810Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3746104Z               "line": 497
2026-06-10T07:08:01.3746386Z             },
2026-06-10T07:08:01.3746658Z             {
2026-06-10T07:08:01.3747025Z               "path": "crates/spt-term/src/digest.rs",
2026-06-10T07:08:01.3747335Z               "line": 524
2026-06-10T07:08:01.3747607Z             },
2026-06-10T07:08:01.3747893Z             {
2026-06-10T07:08:01.3748257Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-10T07:08:01.3748548Z               "line": 32
2026-06-10T07:08:01.3748820Z             },
2026-06-10T07:08:01.3749183Z             {
2026-06-10T07:08:01.3752574Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3752899Z               "line": 6743
2026-06-10T07:08:01.3753176Z             }
2026-06-10T07:08:01.3753445Z           ]
2026-06-10T07:08:01.3753721Z         }
2026-06-10T07:08:01.3753999Z       }
2026-06-10T07:08:01.3754275Z     },
2026-06-10T07:08:01.3754552Z     {
2026-06-10T07:08:01.3754853Z       "id": "REQ-UPD-1",
2026-06-10T07:08:01.3755233Z       "title": "Peer-propagated update over P2P",
2026-06-10T07:08:01.3755539Z       "requiredStages": [
2026-06-10T07:08:01.3755828Z         "impl",
2026-06-10T07:08:01.3756093Z         "unit",
2026-06-10T07:08:01.3756374Z         "int"
2026-06-10T07:08:01.3756641Z       ],
2026-06-10T07:08:01.3756913Z       "stages": {
2026-06-10T07:08:01.3757176Z         "doc": {
2026-06-10T07:08:01.3757480Z           "complete": false,
2026-06-10T07:08:01.3757771Z           "evidence": []
2026-06-10T07:08:01.3758054Z         },
2026-06-10T07:08:01.3758326Z         "impl": {
2026-06-10T07:08:01.3758628Z           "complete": true,
2026-06-10T07:08:01.3758922Z           "evidence": [
2026-06-10T07:08:01.3759304Z             {
2026-06-10T07:08:01.3759685Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3759971Z               "line": 28
2026-06-10T07:08:01.3760244Z             },
2026-06-10T07:08:01.3760515Z             {
2026-06-10T07:08:01.3760893Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3761190Z               "line": 103
2026-06-10T07:08:01.3761483Z             },
2026-06-10T07:08:01.3761750Z             {
2026-06-10T07:08:01.3762147Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3762433Z               "line": 342
2026-06-10T07:08:01.3762714Z             },
2026-06-10T07:08:01.3762996Z             {
2026-06-10T07:08:01.3763372Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.3763658Z               "line": 22
2026-06-10T07:08:01.3763929Z             },
2026-06-10T07:08:01.3764207Z             {
2026-06-10T07:08:01.3764582Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.3764874Z               "line": 145
2026-06-10T07:08:01.3765164Z             },
2026-06-10T07:08:01.3765451Z             {
2026-06-10T07:08:01.3765845Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.3766283Z               "line": 221
2026-06-10T07:08:01.3766553Z             },
2026-06-10T07:08:01.3766815Z             {
2026-06-10T07:08:01.3767192Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.3767477Z               "line": 278
2026-06-10T07:08:01.3767746Z             },
2026-06-10T07:08:01.3768112Z             {
2026-06-10T07:08:01.3768489Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.3768775Z               "line": 37
2026-06-10T07:08:01.3769107Z             }
2026-06-10T07:08:01.3769387Z           ]
2026-06-10T07:08:01.3769659Z         },
2026-06-10T07:08:01.3769935Z         "int": {
2026-06-10T07:08:01.3770226Z           "complete": true,
2026-06-10T07:08:01.3770508Z           "evidence": [
2026-06-10T07:08:01.3770765Z             {
2026-06-10T07:08:01.3771161Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-10T07:08:01.3771448Z               "line": 207
2026-06-10T07:08:01.3771784Z             },
2026-06-10T07:08:01.3772063Z             {
2026-06-10T07:08:01.3772450Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-10T07:08:01.3772736Z               "line": 987
2026-06-10T07:08:01.3773012Z             }
2026-06-10T07:08:01.3773293Z           ]
2026-06-10T07:08:01.3773570Z         },
2026-06-10T07:08:01.3773866Z         "unit": {
2026-06-10T07:08:01.3774156Z           "complete": true,
2026-06-10T07:08:01.3774447Z           "evidence": [
2026-06-10T07:08:01.3774723Z             {
2026-06-10T07:08:01.3775291Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.3775586Z               "line": 381
2026-06-10T07:08:01.3775857Z             },
2026-06-10T07:08:01.3776134Z             {
2026-06-10T07:08:01.3776516Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.3776833Z               "line": 440
2026-06-10T07:08:01.3777104Z             },
2026-06-10T07:08:01.3777380Z             {
2026-06-10T07:08:01.3777794Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T07:08:01.3778081Z               "line": 277
2026-06-10T07:08:01.3778362Z             },
2026-06-10T07:08:01.3778639Z             {
2026-06-10T07:08:01.3779103Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.3779388Z               "line": 124
2026-06-10T07:08:01.3779705Z             },
2026-06-10T07:08:01.3779975Z             {
2026-06-10T07:08:01.3780347Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.3780643Z               "line": 200
2026-06-10T07:08:01.3780914Z             }
2026-06-10T07:08:01.3781196Z           ]
2026-06-10T07:08:01.3781463Z         }
2026-06-10T07:08:01.3781740Z       }
2026-06-10T07:08:01.3782018Z     },
2026-06-10T07:08:01.3782287Z     {
2026-06-10T07:08:01.3782580Z       "id": "REQ-UPD-2",
2026-06-10T07:08:01.3783024Z       "title": "All binaries signature-verified before handoff",
2026-06-10T07:08:01.3783329Z       "requiredStages": [
2026-06-10T07:08:01.3783611Z         "impl",
2026-06-10T07:08:01.3783896Z         "unit"
2026-06-10T07:08:01.3784173Z       ],
2026-06-10T07:08:01.3784449Z       "stages": {
2026-06-10T07:08:01.3784730Z         "doc": {
2026-06-10T07:08:01.3785026Z           "complete": false,
2026-06-10T07:08:01.3785322Z           "evidence": []
2026-06-10T07:08:01.3785594Z         },
2026-06-10T07:08:01.3785880Z         "impl": {
2026-06-10T07:08:01.3786185Z           "complete": true,
2026-06-10T07:08:01.3786466Z           "evidence": [
2026-06-10T07:08:01.3786747Z             {
2026-06-10T07:08:01.3787129Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3787423Z               "line": 343
2026-06-10T07:08:01.3787687Z             },
2026-06-10T07:08:01.3787968Z             {
2026-06-10T07:08:01.3788355Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3788641Z               "line": 469
2026-06-10T07:08:01.3788922Z             },
2026-06-10T07:08:01.3789275Z             {
2026-06-10T07:08:01.3789767Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3790054Z               "line": 29
2026-06-10T07:08:01.3790337Z             },
2026-06-10T07:08:01.3790607Z             {
2026-06-10T07:08:01.3790980Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3791361Z               "line": 271
2026-06-10T07:08:01.3791628Z             },
2026-06-10T07:08:01.3791905Z             {
2026-06-10T07:08:01.3792272Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3792558Z               "line": 288
2026-06-10T07:08:01.3792837Z             },
2026-06-10T07:08:01.3793107Z             {
2026-06-10T07:08:01.3793479Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3793764Z               "line": 408
2026-06-10T07:08:01.3794041Z             },
2026-06-10T07:08:01.3794318Z             {
2026-06-10T07:08:01.3794685Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3794991Z               "line": 540
2026-06-10T07:08:01.3795262Z             },
2026-06-10T07:08:01.3795534Z             {
2026-06-10T07:08:01.3795901Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3796191Z               "line": 155
2026-06-10T07:08:01.3796468Z             }
2026-06-10T07:08:01.3796740Z           ]
2026-06-10T07:08:01.3797026Z         },
2026-06-10T07:08:01.3797302Z         "int": {
2026-06-10T07:08:01.3797602Z           "complete": false,
2026-06-10T07:08:01.3797887Z           "evidence": []
2026-06-10T07:08:01.3798162Z         },
2026-06-10T07:08:01.3798444Z         "unit": {
2026-06-10T07:08:01.3798739Z           "complete": true,
2026-06-10T07:08:01.3799111Z           "evidence": [
2026-06-10T07:08:01.3799378Z             {
2026-06-10T07:08:01.3799760Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3800045Z               "line": 697
2026-06-10T07:08:01.3800327Z             },
2026-06-10T07:08:01.3800614Z             {
2026-06-10T07:08:01.3800992Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3801292Z               "line": 758
2026-06-10T07:08:01.3801564Z             },
2026-06-10T07:08:01.3801840Z             {
2026-06-10T07:08:01.3802208Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3802499Z               "line": 772
2026-06-10T07:08:01.3802765Z             },
2026-06-10T07:08:01.3803036Z             {
2026-06-10T07:08:01.3803417Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3803704Z               "line": 788
2026-06-10T07:08:01.3803991Z             },
2026-06-10T07:08:01.3804263Z             {
2026-06-10T07:08:01.3804640Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3804930Z               "line": 879
2026-06-10T07:08:01.3805198Z             },
2026-06-10T07:08:01.3805474Z             {
2026-06-10T07:08:01.3805841Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3806141Z               "line": 414
2026-06-10T07:08:01.3806414Z             },
2026-06-10T07:08:01.3806690Z             {
2026-06-10T07:08:01.3807066Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3807357Z               "line": 427
2026-06-10T07:08:01.3807639Z             },
2026-06-10T07:08:01.3807906Z             {
2026-06-10T07:08:01.3808316Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T07:08:01.3808605Z               "line": 410
2026-06-10T07:08:01.3808884Z             }
2026-06-10T07:08:01.3809242Z           ]
2026-06-10T07:08:01.3809514Z         }
2026-06-10T07:08:01.3809780Z       }
2026-06-10T07:08:01.3810052Z     },
2026-06-10T07:08:01.3810329Z     {
2026-06-10T07:08:01.3810619Z       "id": "REQ-UPD-3",
2026-06-10T07:08:01.3811155Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-10T07:08:01.3811467Z       "requiredStages": [
2026-06-10T07:08:01.3811742Z         "impl",
2026-06-10T07:08:01.3812023Z         "unit",
2026-06-10T07:08:01.3812400Z         "int"
2026-06-10T07:08:01.3812671Z       ],
2026-06-10T07:08:01.3812948Z       "stages": {
2026-06-10T07:08:01.3813229Z         "doc": {
2026-06-10T07:08:01.3813529Z           "complete": false,
2026-06-10T07:08:01.3813815Z           "evidence": []
2026-06-10T07:08:01.3814086Z         },
2026-06-10T07:08:01.3814366Z         "impl": {
2026-06-10T07:08:01.3814752Z           "complete": true,
2026-06-10T07:08:01.3815043Z           "evidence": [
2026-06-10T07:08:01.3815315Z             {
2026-06-10T07:08:01.3815710Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3815997Z               "line": 40
2026-06-10T07:08:01.3816270Z             },
2026-06-10T07:08:01.3816532Z             {
2026-06-10T07:08:01.3816916Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3817192Z               "line": 76
2026-06-10T07:08:01.3817473Z             },
2026-06-10T07:08:01.3817750Z             {
2026-06-10T07:08:01.3818102Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-10T07:08:01.3818417Z               "line": 786
2026-06-10T07:08:01.3818694Z             },
2026-06-10T07:08:01.3819051Z             {
2026-06-10T07:08:01.3819420Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-10T07:08:01.3819711Z               "line": 691
2026-06-10T07:08:01.3819992Z             },
2026-06-10T07:08:01.3820278Z             {
2026-06-10T07:08:01.3820655Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3820941Z               "line": 26
2026-06-10T07:08:01.3821218Z             },
2026-06-10T07:08:01.3821489Z             {
2026-06-10T07:08:01.3821861Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3822154Z               "line": 114
2026-06-10T07:08:01.3822426Z             },
2026-06-10T07:08:01.3822703Z             {
2026-06-10T07:08:01.3823069Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3823366Z               "line": 246
2026-06-10T07:08:01.3823652Z             },
2026-06-10T07:08:01.3823924Z             {
2026-06-10T07:08:01.3824310Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3824604Z               "line": 1757
2026-06-10T07:08:01.3824878Z             }
2026-06-10T07:08:01.3825274Z           ]
2026-06-10T07:08:01.3825546Z         },
2026-06-10T07:08:01.3825885Z         "int": {
2026-06-10T07:08:01.3826181Z           "complete": true,
2026-06-10T07:08:01.3826481Z           "evidence": [
2026-06-10T07:08:01.3826762Z             {
2026-06-10T07:08:01.3827178Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-10T07:08:01.3827462Z               "line": 23
2026-06-10T07:08:01.3827752Z             }
2026-06-10T07:08:01.3828043Z           ]
2026-06-10T07:08:01.3828315Z         },
2026-06-10T07:08:01.3828600Z         "unit": {
2026-06-10T07:08:01.3828897Z           "complete": true,
2026-06-10T07:08:01.3829264Z           "evidence": [
2026-06-10T07:08:01.3829535Z             {
2026-06-10T07:08:01.3829956Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3830247Z               "line": 486
2026-06-10T07:08:01.3830514Z             },
2026-06-10T07:08:01.3830786Z             {
2026-06-10T07:08:01.3831163Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3831463Z               "line": 536
2026-06-10T07:08:01.3831730Z             },
2026-06-10T07:08:01.3832003Z             {
2026-06-10T07:08:01.3832388Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3832677Z               "line": 604
2026-06-10T07:08:01.3832949Z             },
2026-06-10T07:08:01.3833220Z             {
2026-06-10T07:08:01.3833601Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-10T07:08:01.3833888Z               "line": 491
2026-06-10T07:08:01.3834169Z             },
2026-06-10T07:08:01.3834431Z             {
2026-06-10T07:08:01.3834799Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3835097Z               "line": 271
2026-06-10T07:08:01.3835491Z             },
2026-06-10T07:08:01.3835777Z             {
2026-06-10T07:08:01.3836149Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3836440Z               "line": 295
2026-06-10T07:08:01.3836721Z             },
2026-06-10T07:08:01.3836992Z             {
2026-06-10T07:08:01.3837479Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3837766Z               "line": 316
2026-06-10T07:08:01.3838051Z             },
2026-06-10T07:08:01.3838327Z             {
2026-06-10T07:08:01.3838699Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.3839066Z               "line": 332
2026-06-10T07:08:01.3839348Z             }
2026-06-10T07:08:01.3839620Z           ]
2026-06-10T07:08:01.3839896Z         }
2026-06-10T07:08:01.3840171Z       }
2026-06-10T07:08:01.3840441Z     },
2026-06-10T07:08:01.3840712Z     {
2026-06-10T07:08:01.3841008Z       "id": "REQ-UPD-4",
2026-06-10T07:08:01.3841566Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-10T07:08:01.3841877Z       "requiredStages": [
2026-06-10T07:08:01.3842153Z         "impl",
2026-06-10T07:08:01.3842434Z         "unit"
2026-06-10T07:08:01.3842701Z       ],
2026-06-10T07:08:01.3842991Z       "stages": {
2026-06-10T07:08:01.3843265Z         "doc": {
2026-06-10T07:08:01.3843575Z           "complete": false,
2026-06-10T07:08:01.3843866Z           "evidence": []
2026-06-10T07:08:01.3844138Z         },
2026-06-10T07:08:01.3844424Z         "impl": {
2026-06-10T07:08:01.3844720Z           "complete": true,
2026-06-10T07:08:01.3845010Z           "evidence": [
2026-06-10T07:08:01.3845325Z             {
2026-06-10T07:08:01.3846094Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3846390Z               "line": 41
2026-06-10T07:08:01.3846662Z             },
2026-06-10T07:08:01.3846928Z             {
2026-06-10T07:08:01.3847320Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3847654Z               "line": 77
2026-06-10T07:08:01.3847930Z             },
2026-06-10T07:08:01.3848606Z             {
2026-06-10T07:08:01.3849411Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T07:08:01.3850283Z               "line": 23
2026-06-10T07:08:01.3850943Z             },
2026-06-10T07:08:01.3851549Z             {
2026-06-10T07:08:01.3852254Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T07:08:01.3853113Z               "line": 56
2026-06-10T07:08:01.3853778Z             },
2026-06-10T07:08:01.3854374Z             {
2026-06-10T07:08:01.3855069Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T07:08:01.3855929Z               "line": 77
2026-06-10T07:08:01.3856578Z             },
2026-06-10T07:08:01.3857178Z             {
2026-06-10T07:08:01.3857890Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-10T07:08:01.3858757Z               "line": 184
2026-06-10T07:08:01.3859491Z             },
2026-06-10T07:08:01.3860110Z             {
2026-06-10T07:08:01.3860881Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-10T07:08:01.3861739Z               "line": 101
2026-06-10T07:08:01.3862443Z             },
2026-06-10T07:08:01.3863039Z             {
2026-06-10T07:08:01.3863715Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.3864571Z               "line": 170
2026-06-10T07:08:01.3865239Z             },
2026-06-10T07:08:01.3865835Z             {
2026-06-10T07:08:01.3866484Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3867295Z               "line": 1756
2026-06-10T07:08:01.3867972Z             }
2026-06-10T07:08:01.3868578Z           ]
2026-06-10T07:08:01.3869250Z         },
2026-06-10T07:08:01.3869836Z         "int": {
2026-06-10T07:08:01.3870461Z           "complete": false,
2026-06-10T07:08:01.3871170Z           "evidence": []
2026-06-10T07:08:01.3871818Z         },
2026-06-10T07:08:01.3872407Z         "unit": {
2026-06-10T07:08:01.3873037Z           "complete": true,
2026-06-10T07:08:01.3873989Z           "evidence": [
2026-06-10T07:08:01.3874656Z             {
2026-06-10T07:08:01.3875364Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3876251Z               "line": 532
2026-06-10T07:08:01.3876914Z             },
2026-06-10T07:08:01.3877521Z             {
2026-06-10T07:08:01.3878323Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3879296Z               "line": 657
2026-06-10T07:08:01.3879968Z             },
2026-06-10T07:08:01.3880577Z             {
2026-06-10T07:08:01.3881268Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-10T07:08:01.3882131Z               "line": 384
2026-06-10T07:08:01.3882805Z             },
2026-06-10T07:08:01.3883410Z             {
2026-06-10T07:08:01.3884093Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T07:08:01.3884941Z               "line": 102
2026-06-10T07:08:01.3885610Z             },
2026-06-10T07:08:01.3886205Z             {
2026-06-10T07:08:01.3886911Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T07:08:01.3887979Z               "line": 123
2026-06-10T07:08:01.3888645Z             },
2026-06-10T07:08:01.3889411Z             {
2026-06-10T07:08:01.3890098Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-10T07:08:01.3890956Z               "line": 142
2026-06-10T07:08:01.3891637Z             },
2026-06-10T07:08:01.3892238Z             {
2026-06-10T07:08:01.3892914Z               "path": "crates/spt-store/src/info.rs",
2026-06-10T07:08:01.3893752Z               "line": 386
2026-06-10T07:08:01.3894414Z             },
2026-06-10T07:08:01.3895016Z             {
2026-06-10T07:08:01.3895697Z               "path": "crates/spt-store/src/perch.rs",
2026-06-10T07:08:01.3896537Z               "line": 556
2026-06-10T07:08:01.3897200Z             },
2026-06-10T07:08:01.3897801Z             {
2026-06-10T07:08:01.3898458Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.3899361Z               "line": 5592
2026-06-10T07:08:01.3900043Z             }
2026-06-10T07:08:01.3900644Z           ]
2026-06-10T07:08:01.3901230Z         }
2026-06-10T07:08:01.3901802Z       }
2026-06-10T07:08:01.3902412Z     },
2026-06-10T07:08:01.3902990Z     {
2026-06-10T07:08:01.3903574Z       "id": "REQ-UPD-5",
2026-06-10T07:08:01.3904426Z       "title": "spt-core ripple-updates registered adapters",
2026-06-10T07:08:01.3905361Z       "requiredStages": [
2026-06-10T07:08:01.3906052Z         "impl",
2026-06-10T07:08:01.3906668Z         "unit"
2026-06-10T07:08:01.3907265Z       ],
2026-06-10T07:08:01.3907842Z       "stages": {
2026-06-10T07:08:01.3908462Z         "doc": {
2026-06-10T07:08:01.3909183Z           "complete": false,
2026-06-10T07:08:01.3909892Z           "evidence": []
2026-06-10T07:08:01.3910556Z         },
2026-06-10T07:08:01.3911137Z         "impl": {
2026-06-10T07:08:01.3911771Z           "complete": true,
2026-06-10T07:08:01.3912452Z           "evidence": [
2026-06-10T07:08:01.3913101Z             {
2026-06-10T07:08:01.3913841Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3914728Z               "line": 27
2026-06-10T07:08:01.3915386Z             },
2026-06-10T07:08:01.3915991Z             {
2026-06-10T07:08:01.3916718Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3917619Z               "line": 82
2026-06-10T07:08:01.3918277Z             },
2026-06-10T07:08:01.3918883Z             {
2026-06-10T07:08:01.3919701Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3920592Z               "line": 134
2026-06-10T07:08:01.3921251Z             },
2026-06-10T07:08:01.3921851Z             {
2026-06-10T07:08:01.3922555Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3923409Z               "line": 492
2026-06-10T07:08:01.3924072Z             },
2026-06-10T07:08:01.3924670Z             {
2026-06-10T07:08:01.3925355Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.3926348Z               "line": 528
2026-06-10T07:08:01.3927015Z             }
2026-06-10T07:08:01.3927610Z           ]
2026-06-10T07:08:01.3928203Z         },
2026-06-10T07:08:01.3928789Z         "int": {
2026-06-10T07:08:01.3929511Z           "complete": false,
2026-06-10T07:08:01.3930224Z           "evidence": []
2026-06-10T07:08:01.3930885Z         },
2026-06-10T07:08:01.3931571Z         "unit": {
2026-06-10T07:08:01.3932223Z           "complete": true,
2026-06-10T07:08:01.3932919Z           "evidence": [
2026-06-10T07:08:01.3933553Z             {
2026-06-10T07:08:01.3934288Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3935178Z               "line": 232
2026-06-10T07:08:01.3935829Z             },
2026-06-10T07:08:01.3936425Z             {
2026-06-10T07:08:01.3937150Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3938036Z               "line": 246
2026-06-10T07:08:01.3938696Z             },
2026-06-10T07:08:01.3939383Z             {
2026-06-10T07:08:01.3940100Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3940986Z               "line": 260
2026-06-10T07:08:01.3941644Z             },
2026-06-10T07:08:01.3942236Z             {
2026-06-10T07:08:01.3942957Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3943865Z               "line": 274
2026-06-10T07:08:01.3944543Z             },
2026-06-10T07:08:01.3945144Z             {
2026-06-10T07:08:01.3945887Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-10T07:08:01.3946771Z               "line": 308
2026-06-10T07:08:01.3947434Z             },
2026-06-10T07:08:01.3948025Z             {
2026-06-10T07:08:01.3948730Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-10T07:08:01.3949677Z               "line": 792
2026-06-10T07:08:01.3950331Z             }
2026-06-10T07:08:01.3950926Z           ]
2026-06-10T07:08:01.3951518Z         }
2026-06-10T07:08:01.3952100Z       }
2026-06-10T07:08:01.3952682Z     },
2026-06-10T07:08:01.3953250Z     {
2026-06-10T07:08:01.3953837Z       "id": "REQ-UPD-6",
2026-06-10T07:08:01.3956968Z       "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-10T07:08:01.3960146Z       "requiredStages": [
2026-06-10T07:08:01.3960823Z         "doc",
2026-06-10T07:08:01.3961419Z         "impl",
2026-06-10T07:08:01.3962031Z         "unit",
2026-06-10T07:08:01.3962637Z         "int"
2026-06-10T07:08:01.3963251Z       ],
2026-06-10T07:08:01.3963820Z       "stages": {
2026-06-10T07:08:01.3964440Z         "doc": {
2026-06-10T07:08:01.3965062Z           "complete": true,
2026-06-10T07:08:01.3965754Z           "evidence": [
2026-06-10T07:08:01.3966607Z             {
2026-06-10T07:08:01.3970906Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-10T07:08:01.3971794Z               "line": 3
2026-06-10T07:08:01.3972441Z             },
2026-06-10T07:08:01.3973049Z             {
2026-06-10T07:08:01.3973703Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-10T07:08:01.3974522Z               "line": 3
2026-06-10T07:08:01.3975188Z             },
2026-06-10T07:08:01.3975803Z             {
2026-06-10T07:08:01.3976582Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-10T07:08:01.3977547Z               "line": 3
2026-06-10T07:08:01.3978180Z             }
2026-06-10T07:08:01.3978781Z           ]
2026-06-10T07:08:01.3979458Z         },
2026-06-10T07:08:01.3980055Z         "impl": {
2026-06-10T07:08:01.3980699Z           "complete": true,
2026-06-10T07:08:01.3981396Z           "evidence": [
2026-06-10T07:08:01.3982054Z             {
2026-06-10T07:08:01.3982763Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.3983652Z               "line": 177
2026-06-10T07:08:01.3984476Z             },
2026-06-10T07:08:01.3985077Z             {
2026-06-10T07:08:01.3985777Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.3986641Z               "line": 511
2026-06-10T07:08:01.3987294Z             },
2026-06-10T07:08:01.3987894Z             {
2026-06-10T07:08:01.3988687Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-10T07:08:01.3989645Z               "line": 564
2026-06-10T07:08:01.3990315Z             },
2026-06-10T07:08:01.3990912Z             {
2026-06-10T07:08:01.3991617Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3992479Z               "line": 69
2026-06-10T07:08:01.3993138Z             },
2026-06-10T07:08:01.3993735Z             {
2026-06-10T07:08:01.3994450Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3995322Z               "line": 133
2026-06-10T07:08:01.3995981Z             },
2026-06-10T07:08:01.3996595Z             {
2026-06-10T07:08:01.3997315Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.3998182Z               "line": 243
2026-06-10T07:08:01.3998846Z             },
2026-06-10T07:08:01.3999538Z             {
2026-06-10T07:08:01.4000235Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.4001111Z               "line": 399
2026-06-10T07:08:01.4001780Z             },
2026-06-10T07:08:01.4002381Z             {
2026-06-10T07:08:01.4003082Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.4003964Z               "line": 527
2026-06-10T07:08:01.4004624Z             },
2026-06-10T07:08:01.4005224Z             {
2026-06-10T07:08:01.4005935Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.4006802Z               "line": 541
2026-06-10T07:08:01.4007464Z             },
2026-06-10T07:08:01.4008056Z             {
2026-06-10T07:08:01.4008766Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.4009736Z               "line": 596
2026-06-10T07:08:01.4010393Z             },
2026-06-10T07:08:01.4010995Z             {
2026-06-10T07:08:01.4011696Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.4012570Z               "line": 627
2026-06-10T07:08:01.4013232Z             },
2026-06-10T07:08:01.4013814Z             {
2026-06-10T07:08:01.4014528Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4015389Z               "line": 52
2026-06-10T07:08:01.4016047Z             },
2026-06-10T07:08:01.4016644Z             {
2026-06-10T07:08:01.4017348Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4018216Z               "line": 123
2026-06-10T07:08:01.4018879Z             },
2026-06-10T07:08:01.4019574Z             {
2026-06-10T07:08:01.4020272Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4021131Z               "line": 198
2026-06-10T07:08:01.4021793Z             },
2026-06-10T07:08:01.4022400Z             {
2026-06-10T07:08:01.4023092Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4023965Z               "line": 230
2026-06-10T07:08:01.4024614Z             },
2026-06-10T07:08:01.4025198Z             {
2026-06-10T07:08:01.4025888Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4026755Z               "line": 261
2026-06-10T07:08:01.4027796Z             },
2026-06-10T07:08:01.4028423Z             {
2026-06-10T07:08:01.4029242Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4030111Z               "line": 284
2026-06-10T07:08:01.4030789Z             },
2026-06-10T07:08:01.4031400Z             {
2026-06-10T07:08:01.4032100Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4032974Z               "line": 302
2026-06-10T07:08:01.4033638Z             },
2026-06-10T07:08:01.4034243Z             {
2026-06-10T07:08:01.4034958Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4035979Z               "line": 312
2026-06-10T07:08:01.4036657Z             },
2026-06-10T07:08:01.4037243Z             {
2026-06-10T07:08:01.4037964Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4038835Z               "line": 324
2026-06-10T07:08:01.4039589Z             },
2026-06-10T07:08:01.4040281Z             {
2026-06-10T07:08:01.4040974Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4041836Z               "line": 334
2026-06-10T07:08:01.4042500Z             },
2026-06-10T07:08:01.4043110Z             {
2026-06-10T07:08:01.4043795Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4044654Z               "line": 94
2026-06-10T07:08:01.4045313Z             },
2026-06-10T07:08:01.4045914Z             {
2026-06-10T07:08:01.4046602Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4047461Z               "line": 120
2026-06-10T07:08:01.4048137Z             },
2026-06-10T07:08:01.4048753Z             {
2026-06-10T07:08:01.4049520Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4050372Z               "line": 135
2026-06-10T07:08:01.4051050Z             },
2026-06-10T07:08:01.4051647Z             {
2026-06-10T07:08:01.4052338Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4053198Z               "line": 162
2026-06-10T07:08:01.4053855Z             },
2026-06-10T07:08:01.4054457Z             {
2026-06-10T07:08:01.4055148Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4055993Z               "line": 174
2026-06-10T07:08:01.4056647Z             },
2026-06-10T07:08:01.4057248Z             {
2026-06-10T07:08:01.4057935Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4058789Z               "line": 185
2026-06-10T07:08:01.4059523Z             },
2026-06-10T07:08:01.4060123Z             {
2026-06-10T07:08:01.4060810Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4061678Z               "line": 451
2026-06-10T07:08:01.4062336Z             },
2026-06-10T07:08:01.4062932Z             {
2026-06-10T07:08:01.4063620Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4064477Z               "line": 555
2026-06-10T07:08:01.4065131Z             },
2026-06-10T07:08:01.4065747Z             {
2026-06-10T07:08:01.4066705Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.4067575Z               "line": 171
2026-06-10T07:08:01.4068228Z             },
2026-06-10T07:08:01.4068829Z             {
2026-06-10T07:08:01.4069615Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.4070473Z               "line": 65
2026-06-10T07:08:01.4071131Z             },
2026-06-10T07:08:01.4071736Z             {
2026-06-10T07:08:01.4072426Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.4073269Z               "line": 71
2026-06-10T07:08:01.4073922Z             },
2026-06-10T07:08:01.4074528Z             {
2026-06-10T07:08:01.4075224Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-10T07:08:01.4076083Z               "line": 77
2026-06-10T07:08:01.4076737Z             },
2026-06-10T07:08:01.4077338Z             {
2026-06-10T07:08:01.4077998Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4078826Z               "line": 778
2026-06-10T07:08:01.4079656Z             },
2026-06-10T07:08:01.4080253Z             {
2026-06-10T07:08:01.4080909Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4081719Z               "line": 795
2026-06-10T07:08:01.4082382Z             },
2026-06-10T07:08:01.4082977Z             {
2026-06-10T07:08:01.4083623Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4084439Z               "line": 838
2026-06-10T07:08:01.4085474Z             },
2026-06-10T07:08:01.4086078Z             {
2026-06-10T07:08:01.4086734Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4087683Z               "line": 981
2026-06-10T07:08:01.4088336Z             },
2026-06-10T07:08:01.4088934Z             {
2026-06-10T07:08:01.4089659Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4090494Z               "line": 1131
2026-06-10T07:08:01.4091157Z             }
2026-06-10T07:08:01.4091745Z           ]
2026-06-10T07:08:01.4092428Z         },
2026-06-10T07:08:01.4093019Z         "int": {
2026-06-10T07:08:01.4093642Z           "complete": true,
2026-06-10T07:08:01.4094341Z           "evidence": [
2026-06-10T07:08:01.4094980Z             {
2026-06-10T07:08:01.4095705Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T07:08:01.4096590Z               "line": 569
2026-06-10T07:08:01.4097252Z             },
2026-06-10T07:08:01.4097843Z             {
2026-06-10T07:08:01.4098520Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-10T07:08:01.4099450Z               "line": 135
2026-06-10T07:08:01.4100114Z             }
2026-06-10T07:08:01.4100719Z           ]
2026-06-10T07:08:01.4101296Z         },
2026-06-10T07:08:01.4101881Z         "unit": {
2026-06-10T07:08:01.4102515Z           "complete": true,
2026-06-10T07:08:01.4103216Z           "evidence": [
2026-06-10T07:08:01.4103850Z             {
2026-06-10T07:08:01.4104553Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.4105434Z               "line": 577
2026-06-10T07:08:01.4106088Z             },
2026-06-10T07:08:01.4106694Z             {
2026-06-10T07:08:01.4107391Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.4108241Z               "line": 626
2026-06-10T07:08:01.4108898Z             },
2026-06-10T07:08:01.4109569Z             {
2026-06-10T07:08:01.4110268Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-10T07:08:01.4111136Z               "line": 689
2026-06-10T07:08:01.4111803Z             },
2026-06-10T07:08:01.4112408Z             {
2026-06-10T07:08:01.4113104Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4113977Z               "line": 462
2026-06-10T07:08:01.4114791Z             },
2026-06-10T07:08:01.4115399Z             {
2026-06-10T07:08:01.4116143Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4117007Z               "line": 499
2026-06-10T07:08:01.4117677Z             },
2026-06-10T07:08:01.4118285Z             {
2026-06-10T07:08:01.4119053Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4119927Z               "line": 894
2026-06-10T07:08:01.4120585Z             },
2026-06-10T07:08:01.4121191Z             {
2026-06-10T07:08:01.4121883Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4122741Z               "line": 916
2026-06-10T07:08:01.4123401Z             },
2026-06-10T07:08:01.4124002Z             {
2026-06-10T07:08:01.4124695Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4125568Z               "line": 933
2026-06-10T07:08:01.4126235Z             },
2026-06-10T07:08:01.4126832Z             {
2026-06-10T07:08:01.4127532Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4128378Z               "line": 948
2026-06-10T07:08:01.4129112Z             },
2026-06-10T07:08:01.4129728Z             {
2026-06-10T07:08:01.4130414Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4131284Z               "line": 974
2026-06-10T07:08:01.4131937Z             },
2026-06-10T07:08:01.4132537Z             {
2026-06-10T07:08:01.4133224Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-10T07:08:01.4134068Z               "line": 457
2026-06-10T07:08:01.4134777Z             },
2026-06-10T07:08:01.4135369Z             {
2026-06-10T07:08:01.4136090Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-10T07:08:01.4136968Z               "line": 338
2026-06-10T07:08:01.4137630Z             },
2026-06-10T07:08:01.4138227Z             {
2026-06-10T07:08:01.4138882Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4139916Z               "line": 1260
2026-06-10T07:08:01.4140588Z             },
2026-06-10T07:08:01.4141188Z             {
2026-06-10T07:08:01.4141868Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-10T07:08:01.4142702Z               "line": 130
2026-06-10T07:08:01.4143374Z             }
2026-06-10T07:08:01.4144065Z           ]
2026-06-10T07:08:01.4144651Z         }
2026-06-10T07:08:01.4145229Z       }
2026-06-10T07:08:01.4145800Z     },
2026-06-10T07:08:01.4146376Z     {
2026-06-10T07:08:01.4146969Z       "id": "REQ-UPD-7",
2026-06-10T07:08:01.4153113Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-10T07:08:01.4159203Z       "requiredStages": [
2026-06-10T07:08:01.4159917Z         "impl",
2026-06-10T07:08:01.4160530Z         "unit"
2026-06-10T07:08:01.4161131Z       ],
2026-06-10T07:08:01.4161703Z       "stages": {
2026-06-10T07:08:01.4162328Z         "doc": {
2026-06-10T07:08:01.4162959Z           "complete": false,
2026-06-10T07:08:01.4163669Z           "evidence": []
2026-06-10T07:08:01.4164327Z         },
2026-06-10T07:08:01.4164909Z         "impl": {
2026-06-10T07:08:01.4165543Z           "complete": true,
2026-06-10T07:08:01.4166247Z           "evidence": [
2026-06-10T07:08:01.4166896Z             {
2026-06-10T07:08:01.4167558Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4168377Z               "line": 1853
2026-06-10T07:08:01.4169114Z             }
2026-06-10T07:08:01.4169702Z           ]
2026-06-10T07:08:01.4170297Z         },
2026-06-10T07:08:01.4170872Z         "int": {
2026-06-10T07:08:01.4171515Z           "complete": false,
2026-06-10T07:08:01.4172234Z           "evidence": []
2026-06-10T07:08:01.4172883Z         },
2026-06-10T07:08:01.4173472Z         "unit": {
2026-06-10T07:08:01.4174115Z           "complete": true,
2026-06-10T07:08:01.4174806Z           "evidence": [
2026-06-10T07:08:01.4175459Z             {
2026-06-10T07:08:01.4176121Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4176928Z               "line": 7440
2026-06-10T07:08:01.4177605Z             }
2026-06-10T07:08:01.4178209Z           ]
2026-06-10T07:08:01.4178793Z         }
2026-06-10T07:08:01.4179447Z       }
2026-06-10T07:08:01.4180018Z     },
2026-06-10T07:08:01.4180596Z     {
2026-06-10T07:08:01.4181170Z       "id": "REQ-UPD-8",
2026-06-10T07:08:01.4188447Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-10T07:08:01.4195517Z       "requiredStages": [
2026-06-10T07:08:01.4196203Z         "impl",
2026-06-10T07:08:01.4196860Z         "unit"
2026-06-10T07:08:01.4197466Z       ],
2026-06-10T07:08:01.4198204Z       "stages": {
2026-06-10T07:08:01.4198848Z         "doc": {
2026-06-10T07:08:01.4199656Z           "complete": false,
2026-06-10T07:08:01.4200381Z           "evidence": []
2026-06-10T07:08:01.4201044Z         },
2026-06-10T07:08:01.4201630Z         "impl": {
2026-06-10T07:08:01.4202253Z           "complete": true,
2026-06-10T07:08:01.4203047Z           "evidence": [
2026-06-10T07:08:01.4203696Z             {
2026-06-10T07:08:01.4204408Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.4205270Z               "line": 66
2026-06-10T07:08:01.4205924Z             },
2026-06-10T07:08:01.4206520Z             {
2026-06-10T07:08:01.4207226Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4208088Z               "line": 46
2026-06-10T07:08:01.4208750Z             },
2026-06-10T07:08:01.4209432Z             {
2026-06-10T07:08:01.4210125Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4210983Z               "line": 90
2026-06-10T07:08:01.4211642Z             },
2026-06-10T07:08:01.4212242Z             {
2026-06-10T07:08:01.4212939Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4213803Z               "line": 153
2026-06-10T07:08:01.4214461Z             },
2026-06-10T07:08:01.4215058Z             {
2026-06-10T07:08:01.4215779Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4216642Z               "line": 168
2026-06-10T07:08:01.4217467Z             },
2026-06-10T07:08:01.4218076Z             {
2026-06-10T07:08:01.4218801Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4219750Z               "line": 185
2026-06-10T07:08:01.4220406Z             },
2026-06-10T07:08:01.4221005Z             {
2026-06-10T07:08:01.4221688Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4222540Z               "line": 207
2026-06-10T07:08:01.4223197Z             },
2026-06-10T07:08:01.4223791Z             {
2026-06-10T07:08:01.4224850Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4229762Z               "line": 66
2026-06-10T07:08:01.4230438Z             },
2026-06-10T07:08:01.4231047Z             {
2026-06-10T07:08:01.4231747Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-10T07:08:01.4232620Z               "line": 154
2026-06-10T07:08:01.4233296Z             },
2026-06-10T07:08:01.4233900Z             {
2026-06-10T07:08:01.4234552Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4235376Z               "line": 1745
2026-06-10T07:08:01.4236049Z             },
2026-06-10T07:08:01.4236650Z             {
2026-06-10T07:08:01.4236984Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4237279Z               "line": 1800
2026-06-10T07:08:01.4237557Z             },
2026-06-10T07:08:01.4237828Z             {
2026-06-10T07:08:01.4238163Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4238453Z               "line": 1810
2026-06-10T07:08:01.4238740Z             },
2026-06-10T07:08:01.4239106Z             {
2026-06-10T07:08:01.4239444Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4239736Z               "line": 1817
2026-06-10T07:08:01.4240012Z             },
2026-06-10T07:08:01.4240274Z             {
2026-06-10T07:08:01.4240604Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4240904Z               "line": 1854
2026-06-10T07:08:01.4241175Z             },
2026-06-10T07:08:01.4241455Z             {
2026-06-10T07:08:01.4241795Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4242082Z               "line": 480
2026-06-10T07:08:01.4242358Z             },
2026-06-10T07:08:01.4242631Z             {
2026-06-10T07:08:01.4242974Z               "path": "crates/xtask/src/main.rs",
2026-06-10T07:08:01.4243260Z               "line": 494
2026-06-10T07:08:01.4243541Z             }
2026-06-10T07:08:01.4243824Z           ]
2026-06-10T07:08:01.4244096Z         },
2026-06-10T07:08:01.4244648Z         "int": {
2026-06-10T07:08:01.4244997Z           "complete": false,
2026-06-10T07:08:01.4245297Z           "evidence": []
2026-06-10T07:08:01.4245607Z         },
2026-06-10T07:08:01.4245893Z         "unit": {
2026-06-10T07:08:01.4246218Z           "complete": true,
2026-06-10T07:08:01.4246508Z           "evidence": [
2026-06-10T07:08:01.4246785Z             {
2026-06-10T07:08:01.4247292Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-10T07:08:01.4247587Z               "line": 430
2026-06-10T07:08:01.4247864Z             },
2026-06-10T07:08:01.4248141Z             {
2026-06-10T07:08:01.4248527Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-10T07:08:01.4248813Z               "line": 404
2026-06-10T07:08:01.4249191Z             },
2026-06-10T07:08:01.4249467Z             {
2026-06-10T07:08:01.4249803Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4250089Z               "line": 7442
2026-06-10T07:08:01.4250371Z             },
2026-06-10T07:08:01.4250653Z             {
2026-06-10T07:08:01.4250982Z               "path": "crates/spt/src/cli.rs",
2026-06-10T07:08:01.4251272Z               "line": 7464
2026-06-10T07:08:01.4251540Z             }
2026-06-10T07:08:01.4251813Z           ]
2026-06-10T07:08:01.4252077Z         }
2026-06-10T07:08:01.4252346Z       }
2026-06-10T07:08:01.4252613Z     }
2026-06-10T07:08:01.4252895Z   ],
2026-06-10T07:08:01.4253187Z   "findings": []
2026-06-10T07:08:01.4253458Z }
2026-06-10T07:08:01.4301237Z ##[group]Run ./traceable-reqs lint || true
2026-06-10T07:08:01.4301604Z [36;1m./traceable-reqs lint || true[0m
2026-06-10T07:08:01.4315159Z shell: /usr/bin/bash -e {0}
2026-06-10T07:08:01.4315447Z ##[endgroup]
2026-06-10T07:08:01.4490895Z Requirement quality findings (82); 181 requirements queued for agent review:
2026-06-10T07:08:01.4492724Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4494079Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-10T07:08:01.4495591Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-10T07:08:01.4496478Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-10T07:08:01.4497290Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-10T07:08:01.4498168Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-10T07:08:01.4499336Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4500110Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-10T07:08:01.4500888Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-10T07:08:01.4502009Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4502828Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-10T07:08:01.4504372Z   [must] requirement_quality REQ-DAEMON-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4505163Z   [must] requirement_quality REQ-DAEMON-6 criterion=length — title is 84 words; want 3..=25
2026-06-10T07:08:01.4506323Z   [must] requirement_quality REQ-DAEMON-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4507072Z   [must] requirement_quality REQ-DAEMON-7 criterion=length — title is 62 words; want 3..=25
2026-06-10T07:08:01.4507774Z   [must] requirement_quality REQ-DAEMON-8 criterion=length — title is 44 words; want 3..=25
2026-06-10T07:08:01.4508781Z   [must] requirement_quality REQ-DAEMON-9 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4509924Z   [must] requirement_quality REQ-DAEMON-9 criterion=length — title is 114 words; want 3..=25
2026-06-10T07:08:01.4511256Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4512230Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=length — title is 114 words; want 3..=25
2026-06-10T07:08:01.4513222Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-10T07:08:01.4514198Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-10T07:08:01.4515147Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-10T07:08:01.4516406Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4517400Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-10T07:08:01.4518649Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4519646Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=length — title is 73 words; want 3..=25
2026-06-10T07:08:01.4521091Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4521937Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-10T07:08:01.4523114Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4524000Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-10T07:08:01.4524906Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-10T07:08:01.4525793Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-10T07:08:01.4527073Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4528293Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4529304Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-10T07:08:01.4530478Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4531369Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-10T07:08:01.4532314Z   [must] requirement_quality REQ-HAZARD-ROLLBACK-STATE-COMPAT criterion=length — title is 72 words; want 3..=25
2026-06-10T07:08:01.4533197Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-10T07:08:01.4534075Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-10T07:08:01.4534780Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-10T07:08:01.4535517Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-10T07:08:01.4536621Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4537356Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-10T07:08:01.4538562Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4539367Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-10T07:08:01.4540110Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-10T07:08:01.4541242Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4541944Z   [must] requirement_quality REQ-MESH-1 criterion=length — title is 86 words; want 3..=25
2026-06-10T07:08:01.4542932Z   [must] requirement_quality REQ-MESH-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4543634Z   [must] requirement_quality REQ-MESH-2 criterion=length — title is 120 words; want 3..=25
2026-06-10T07:08:01.4544621Z   [must] requirement_quality REQ-MESH-3 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4545335Z   [must] requirement_quality REQ-MESH-3 criterion=length — title is 86 words; want 3..=25
2026-06-10T07:08:01.4546322Z   [must] requirement_quality REQ-MESH-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4547152Z   [must] requirement_quality REQ-MESH-4 criterion=length — title is 99 words; want 3..=25
2026-06-10T07:08:01.4548135Z   [must] requirement_quality REQ-MESH-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4548831Z   [must] requirement_quality REQ-MESH-5 criterion=length — title is 72 words; want 3..=25
2026-06-10T07:08:01.4549871Z   [must] requirement_quality REQ-MESH-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4550551Z   [must] requirement_quality REQ-MESH-6 criterion=length — title is 56 words; want 3..=25
2026-06-10T07:08:01.4551589Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4552252Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-10T07:08:01.4553232Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4553941Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-10T07:08:01.4554923Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4555783Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-10T07:08:01.4556562Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-10T07:08:01.4557268Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-10T07:08:01.4557993Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-10T07:08:01.4558695Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-10T07:08:01.4559500Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-10T07:08:01.4560536Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4561254Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-10T07:08:01.4562268Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4562983Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-10T07:08:01.4563711Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-10T07:08:01.4564887Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4565864Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-10T07:08:01.4566960Z   [must] requirement_quality REQ-UPD-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4567634Z   [must] requirement_quality REQ-UPD-7 criterion=length — title is 88 words; want 3..=25
2026-06-10T07:08:01.4568616Z   [must] requirement_quality REQ-UPD-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-10T07:08:01.4569379Z   [must] requirement_quality REQ-UPD-8 criterion=length — title is 115 words; want 3..=25
2026-06-10T07:08:01.4569417Z 
2026-06-10T07:08:01.4569741Z # Requirement quality review
2026-06-10T07:08:01.4569774Z 
2026-06-10T07:08:01.4570385Z You are reviewing 181 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-10T07:08:01.4571024Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-10T07:08:01.4571628Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-10T07:08:01.4572075Z this command's output. Your task is the rubric items below.
2026-06-10T07:08:01.4572108Z 
2026-06-10T07:08:01.4572389Z ## Rubric
2026-06-10T07:08:01.4572561Z 
2026-06-10T07:08:01.4573271Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-10T07:08:01.4573891Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-10T07:08:01.4574475Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-10T07:08:01.4574884Z - **active-voice** — clear subject and active verb.
2026-06-10T07:08:01.4574917Z 
2026-06-10T07:08:01.4575542Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-10T07:08:01.4575862Z clear concerns.
2026-06-10T07:08:01.4575895Z 
2026-06-10T07:08:01.4576186Z ## Requirements
2026-06-10T07:08:01.4576220Z 
2026-06-10T07:08:01.4576510Z ### REQ-ARCH-1
2026-06-10T07:08:01.4576888Z - Title: Many small acyclically-layered crates
2026-06-10T07:08:01.4577191Z - Required stages: impl
2026-06-10T07:08:01.4577225Z 
2026-06-10T07:08:01.4577520Z ### REQ-ARCH-2
2026-06-10T07:08:01.4577988Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-10T07:08:01.4578293Z - Required stages: impl
2026-06-10T07:08:01.4578326Z 
2026-06-10T07:08:01.4578598Z ### REQ-ARCH-3
2026-06-10T07:08:01.4579250Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-10T07:08:01.4579563Z - Required stages: impl, unit
2026-06-10T07:08:01.4579591Z 
2026-06-10T07:08:01.4579888Z ### REQ-ARCH-4
2026-06-10T07:08:01.4580382Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-10T07:08:01.4580697Z - Required stages: impl, unit
2026-06-10T07:08:01.4580751Z 
2026-06-10T07:08:01.4581051Z ### REQ-DAEMON-1
2026-06-10T07:08:01.4581522Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-10T07:08:01.4581851Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4581880Z 
2026-06-10T07:08:01.4582170Z ### REQ-DAEMON-2
2026-06-10T07:08:01.4582567Z - Title: Broker/brain split for seamless self-update
2026-06-10T07:08:01.4582896Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4582939Z 
2026-06-10T07:08:01.4583225Z ### REQ-DAEMON-3
2026-06-10T07:08:01.4583665Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-10T07:08:01.4583989Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4584013Z 
2026-06-10T07:08:01.4584295Z ### REQ-DAEMON-4
2026-06-10T07:08:01.4584662Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-10T07:08:01.4584974Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4585007Z 
2026-06-10T07:08:01.4585297Z ### REQ-STORE-1
2026-06-10T07:08:01.4587872Z - 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-10T07:08:01.4588309Z - Required stages: impl, unit
2026-06-10T07:08:01.4588342Z 
2026-06-10T07:08:01.4588647Z ### REQ-MANIFEST-1
2026-06-10T07:08:01.4589234Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-10T07:08:01.4589577Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4589606Z 
2026-06-10T07:08:01.4589901Z ### REQ-SEAM-SPAWN
2026-06-10T07:08:01.4590213Z - Title: spawn-session seam
2026-06-10T07:08:01.4590523Z - Required stages: impl, unit
2026-06-10T07:08:01.4590556Z 
2026-06-10T07:08:01.4590857Z ### REQ-SEAM-POSTSPAWN
2026-06-10T07:08:01.4591248Z - Title: post-spawn / api bind seam with boot nonce
2026-06-10T07:08:01.4591572Z - Required stages: impl, unit
2026-06-10T07:08:01.4591611Z 
2026-06-10T07:08:01.4591906Z ### REQ-SEAM-PSYCHE
2026-06-10T07:08:01.4592312Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-10T07:08:01.4592636Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4592669Z 
2026-06-10T07:08:01.4592963Z ### REQ-SEAM-HISTORY
2026-06-10T07:08:01.4593490Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-10T07:08:01.4593810Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4593958Z 
2026-06-10T07:08:01.4594263Z ### REQ-SEAM-ACTIVITY
2026-06-10T07:08:01.4594778Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-10T07:08:01.4595098Z - Required stages: impl, unit
2026-06-10T07:08:01.4595132Z 
2026-06-10T07:08:01.4595430Z ### REQ-SEAM-INJECT
2026-06-10T07:08:01.4595901Z - Title: inject-input methods configurable per activity-state
2026-06-10T07:08:01.4596220Z - Required stages: impl, unit
2026-06-10T07:08:01.4596253Z 
2026-06-10T07:08:01.4596544Z ### REQ-SEAM-RESUME
2026-06-10T07:08:01.4597074Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-10T07:08:01.4597388Z - Required stages: impl, unit
2026-06-10T07:08:01.4597427Z 
2026-06-10T07:08:01.4597722Z ### REQ-SEAM-CAPABILITY
2026-06-10T07:08:01.4598140Z - Title: Hostable endpoint-types capability declaration
2026-06-10T07:08:01.4598451Z - Required stages: impl, unit
2026-06-10T07:08:01.4598483Z 
2026-06-10T07:08:01.4598775Z ### REQ-SEAM-UPDATE
2026-06-10T07:08:01.4599318Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-10T07:08:01.4599638Z - Required stages: impl, unit
2026-06-10T07:08:01.4599671Z 
2026-06-10T07:08:01.4599977Z ### REQ-API-1
2026-06-10T07:08:01.4600456Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-10T07:08:01.4600778Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4600811Z 
2026-06-10T07:08:01.4601092Z ### REQ-API-2
2026-06-10T07:08:01.4601684Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-10T07:08:01.4602017Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4602051Z 
2026-06-10T07:08:01.4602323Z ### REQ-API-3
2026-06-10T07:08:01.4602723Z - Title: commune/signoff are file-drops, not commands
2026-06-10T07:08:01.4603034Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4603067Z 
2026-06-10T07:08:01.4603356Z ### REQ-START-1
2026-06-10T07:08:01.4603912Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-10T07:08:01.4604237Z - Required stages: impl, unit
2026-06-10T07:08:01.4604269Z 
2026-06-10T07:08:01.4604566Z ### REQ-START-2
2026-06-10T07:08:01.4604961Z - Title: Harness-hosted startup: api seed then listen
2026-06-10T07:08:01.4605285Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4605314Z 
2026-06-10T07:08:01.4605605Z ### REQ-START-3
2026-06-10T07:08:01.4606094Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-10T07:08:01.4606413Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4606447Z 
2026-06-10T07:08:01.4606836Z ### REQ-START-4
2026-06-10T07:08:01.4607237Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-10T07:08:01.4607547Z - Required stages: impl, unit
2026-06-10T07:08:01.4607585Z 
2026-06-10T07:08:01.4607866Z ### REQ-EP-1
2026-06-10T07:08:01.4608245Z - Title: Day-one endpoint types; open type system
2026-06-10T07:08:01.4608559Z - Required stages: impl, unit
2026-06-10T07:08:01.4608592Z 
2026-06-10T07:08:01.4608886Z ### REQ-EP-2
2026-06-10T07:08:01.4609434Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-10T07:08:01.4609758Z - Required stages: impl, unit
2026-06-10T07:08:01.4609792Z 
2026-06-10T07:08:01.4610082Z ### REQ-EP-3
2026-06-10T07:08:01.4610611Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-10T07:08:01.4610931Z - Required stages: impl, unit
2026-06-10T07:08:01.4610959Z 
2026-06-10T07:08:01.4611239Z ### REQ-EP-4
2026-06-10T07:08:01.4611662Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-10T07:08:01.4611977Z - Required stages: impl, unit
2026-06-10T07:08:01.4612024Z 
2026-06-10T07:08:01.4612301Z ### REQ-EP-5
2026-06-10T07:08:01.4614266Z - 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-10T07:08:01.4614581Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4614615Z 
2026-06-10T07:08:01.4615002Z ### REQ-INST-1
2026-06-10T07:08:01.4615507Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-10T07:08:01.4615802Z - Required stages: 
2026-06-10T07:08:01.4615831Z 
2026-06-10T07:08:01.4616107Z ### REQ-INST-2
2026-06-10T07:08:01.4616450Z - Title: Per-node files, synced Psyche mind
2026-06-10T07:08:01.4616767Z - Required stages: impl, unit
2026-06-10T07:08:01.4616800Z 
2026-06-10T07:08:01.4617087Z ### REQ-INST-3
2026-06-10T07:08:01.4617506Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-10T07:08:01.4617836Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4617869Z 
2026-06-10T07:08:01.4618150Z ### REQ-INST-4
2026-06-10T07:08:01.4618645Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-10T07:08:01.4619018Z - Required stages: impl, unit
2026-06-10T07:08:01.4619041Z 
2026-06-10T07:08:01.4619317Z ### REQ-INST-5
2026-06-10T07:08:01.4619824Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-10T07:08:01.4620148Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4620181Z 
2026-06-10T07:08:01.4620472Z ### REQ-INST-6
2026-06-10T07:08:01.4620996Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-10T07:08:01.4621325Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4621359Z 
2026-06-10T07:08:01.4621642Z ### REQ-INST-7
2026-06-10T07:08:01.4622027Z - Title: Subnet registry + bare-id resolution policy
2026-06-10T07:08:01.4622351Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4622385Z 
2026-06-10T07:08:01.4622672Z ### REQ-INST-8
2026-06-10T07:08:01.4623105Z - Title: Remote-control mode distinct from local operation
2026-06-10T07:08:01.4623429Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4623462Z 
2026-06-10T07:08:01.4623738Z ### REQ-INST-9
2026-06-10T07:08:01.4624312Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-10T07:08:01.4624625Z - Required stages: impl, unit
2026-06-10T07:08:01.4624657Z 
2026-06-10T07:08:01.4624981Z ### REQ-INST-10
2026-06-10T07:08:01.4625586Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-10T07:08:01.4625892Z - Required stages: impl, unit
2026-06-10T07:08:01.4625924Z 
2026-06-10T07:08:01.4626216Z ### REQ-INST-11
2026-06-10T07:08:01.4626812Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-10T07:08:01.4627134Z - Required stages: impl, unit
2026-06-10T07:08:01.4627168Z 
2026-06-10T07:08:01.4627451Z ### REQ-INST-12
2026-06-10T07:08:01.4628290Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-10T07:08:01.4628715Z - Required stages: impl, unit
2026-06-10T07:08:01.4628749Z 
2026-06-10T07:08:01.4629111Z ### REQ-INST-13
2026-06-10T07:08:01.4629646Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-10T07:08:01.4629967Z - Required stages: impl, unit
2026-06-10T07:08:01.4630001Z 
2026-06-10T07:08:01.4630282Z ### REQ-INST-14
2026-06-10T07:08:01.4631422Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-10T07:08:01.4631746Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4631774Z 
2026-06-10T07:08:01.4632070Z ### REQ-INST-15
2026-06-10T07:08:01.4634195Z - 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-10T07:08:01.4634524Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4634558Z 
2026-06-10T07:08:01.4634844Z ### REQ-REACH-1
2026-06-10T07:08:01.4635264Z - Title: Off-node remote-drive detection + file transfer
2026-06-10T07:08:01.4635588Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4635621Z 
2026-06-10T07:08:01.4635912Z ### REQ-REACH-2
2026-06-10T07:08:01.4636466Z - Title: Remote command execution (deferred, consent-gated)
2026-06-10T07:08:01.4636772Z - Required stages: 
2026-06-10T07:08:01.4636804Z 
2026-06-10T07:08:01.4637081Z ### REQ-MSG-1
2026-06-10T07:08:01.4638422Z - 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-10T07:08:01.4638751Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4638784Z 
2026-06-10T07:08:01.4639208Z ### REQ-MSG-2
2026-06-10T07:08:01.4639982Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-10T07:08:01.4640306Z - Required stages: impl, unit
2026-06-10T07:08:01.4640339Z 
2026-06-10T07:08:01.4640624Z ### REQ-MSG-3
2026-06-10T07:08:01.4641734Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-10T07:08:01.4642044Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4642087Z 
2026-06-10T07:08:01.4642373Z ### REQ-MSG-4
2026-06-10T07:08:01.4644520Z - 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-10T07:08:01.4644863Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4644892Z 
2026-06-10T07:08:01.4645192Z ### REQ-NODE-IDENTITY
2026-06-10T07:08:01.4645824Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-10T07:08:01.4646162Z - Required stages: impl, unit
2026-06-10T07:08:01.4646204Z 
2026-06-10T07:08:01.4646487Z ### REQ-NET-1
2026-06-10T07:08:01.4647007Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-10T07:08:01.4647336Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4647364Z 
2026-06-10T07:08:01.4647641Z ### REQ-NET-2
2026-06-10T07:08:01.4648173Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-10T07:08:01.4648476Z - Required stages: impl
2026-06-10T07:08:01.4648513Z 
2026-06-10T07:08:01.4648800Z ### REQ-NET-3
2026-06-10T07:08:01.4649349Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-10T07:08:01.4649659Z - Required stages: impl, unit
2026-06-10T07:08:01.4649687Z 
2026-06-10T07:08:01.4649988Z ### REQ-PAIR-1
2026-06-10T07:08:01.4650311Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-10T07:08:01.4650640Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4650785Z 
2026-06-10T07:08:01.4651078Z ### REQ-PAIR-2
2026-06-10T07:08:01.4651465Z - Title: Local trust store with TOFU + warn-on-change
2026-06-10T07:08:01.4651771Z - Required stages: 
2026-06-10T07:08:01.4651804Z 
2026-06-10T07:08:01.4652085Z ### REQ-PAIR-3
2026-06-10T07:08:01.4652505Z - Title: Fetch current pairing code from any paired node
2026-06-10T07:08:01.4652834Z - Required stages: impl, unit
2026-06-10T07:08:01.4652866Z 
2026-06-10T07:08:01.4653157Z ### REQ-PAIR-4
2026-06-10T07:08:01.4653484Z - Title: Subnet naming on first pairing
2026-06-10T07:08:01.4653789Z - Required stages: impl, unit
2026-06-10T07:08:01.4653823Z 
2026-06-10T07:08:01.4654108Z ### REQ-PAIR-5
2026-06-10T07:08:01.4654990Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-10T07:08:01.4655320Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4655353Z 
2026-06-10T07:08:01.4655644Z ### REQ-PAIR-6
2026-06-10T07:08:01.4656375Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-10T07:08:01.4656704Z - Required stages: impl, unit
2026-06-10T07:08:01.4656737Z 
2026-06-10T07:08:01.4657028Z ### REQ-PAIR-7
2026-06-10T07:08:01.4657490Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-10T07:08:01.4657790Z - Required stages: 
2026-06-10T07:08:01.4657824Z 
2026-06-10T07:08:01.4658110Z ### REQ-SUBNET-1
2026-06-10T07:08:01.4659223Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-10T07:08:01.4659547Z - Required stages: impl, unit
2026-06-10T07:08:01.4659581Z 
2026-06-10T07:08:01.4659866Z ### REQ-SUBNET-2
2026-06-10T07:08:01.4660528Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-10T07:08:01.4660848Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4660881Z 
2026-06-10T07:08:01.4661172Z ### REQ-SUBNET-3
2026-06-10T07:08:01.4661953Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-10T07:08:01.4662277Z - Required stages: impl, unit
2026-06-10T07:08:01.4662311Z 
2026-06-10T07:08:01.4662607Z ### REQ-SUBNET-4
2026-06-10T07:08:01.4663441Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-10T07:08:01.4663765Z - Required stages: impl, unit
2026-06-10T07:08:01.4663798Z 
2026-06-10T07:08:01.4664101Z ### REQ-DOCS-6
2026-06-10T07:08:01.4665021Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-10T07:08:01.4665383Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4665426Z 
2026-06-10T07:08:01.4665727Z ### REQ-SEC-1
2026-06-10T07:08:01.4666855Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-10T07:08:01.4667163Z - Required stages: impl, unit
2026-06-10T07:08:01.4667197Z 
2026-06-10T07:08:01.4667483Z ### REQ-NOTIF-1
2026-06-10T07:08:01.4668545Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-10T07:08:01.4668860Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4668893Z 
2026-06-10T07:08:01.4669231Z ### REQ-NOTIF-2
2026-06-10T07:08:01.4670002Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-10T07:08:01.4670331Z - Required stages: doc, impl, unit, int
2026-06-10T07:08:01.4670365Z 
2026-06-10T07:08:01.4670656Z ### REQ-UPD-1
2026-06-10T07:08:01.4670990Z - Title: Peer-propagated update over P2P
2026-06-10T07:08:01.4671319Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4671352Z 
2026-06-10T07:08:01.4671639Z ### REQ-UPD-2
2026-06-10T07:08:01.4672047Z - Title: All binaries signature-verified before handoff
2026-06-10T07:08:01.4672362Z - Required stages: impl, unit
2026-06-10T07:08:01.4672394Z 
2026-06-10T07:08:01.4672780Z ### REQ-UPD-3
2026-06-10T07:08:01.4673277Z - Title: No endpoint process terminates/suspends during self-update
2026-06-10T07:08:01.4673592Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4673629Z 
2026-06-10T07:08:01.4673911Z ### REQ-UPD-4
2026-06-10T07:08:01.4674429Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-10T07:08:01.4674741Z - Required stages: impl, unit
2026-06-10T07:08:01.4674780Z 
2026-06-10T07:08:01.4675065Z ### REQ-UPD-5
2026-06-10T07:08:01.4675463Z - Title: spt-core ripple-updates registered adapters
2026-06-10T07:08:01.4675773Z - Required stages: impl, unit
2026-06-10T07:08:01.4675806Z 
2026-06-10T07:08:01.4676087Z ### REQ-UPD-6
2026-06-10T07:08:01.4678548Z - 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-10T07:08:01.4678886Z - Required stages: doc, impl, unit, int
2026-06-10T07:08:01.4678915Z 
2026-06-10T07:08:01.4679259Z ### REQ-UPD-7
2026-06-10T07:08:01.4684923Z - Title: Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.
2026-06-10T07:08:01.4685264Z - Required stages: impl, unit
2026-06-10T07:08:01.4685301Z 
2026-06-10T07:08:01.4685588Z ### REQ-UPD-8
2026-06-10T07:08:01.4692500Z - Title: Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.
2026-06-10T07:08:01.4692829Z - Required stages: impl, unit
2026-06-10T07:08:01.4692862Z 
2026-06-10T07:08:01.4693154Z ### REQ-TERM-1
2026-06-10T07:08:01.4693633Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-10T07:08:01.4693967Z - Required stages: impl, unit
2026-06-10T07:08:01.4694001Z 
2026-06-10T07:08:01.4694287Z ### REQ-TERM-2
2026-06-10T07:08:01.4694807Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-10T07:08:01.4695130Z - Required stages: impl, unit
2026-06-10T07:08:01.4695164Z 
2026-06-10T07:08:01.4695450Z ### REQ-TERM-3
2026-06-10T07:08:01.4695871Z - Title: Byte-stream remote terminal streaming for v1
2026-06-10T07:08:01.4696185Z - Required stages: impl, unit
2026-06-10T07:08:01.4696224Z 
2026-06-10T07:08:01.4696505Z ### REQ-TERM-4
2026-06-10T07:08:01.4697755Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-10T07:08:01.4698093Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4698133Z 
2026-06-10T07:08:01.4698459Z ### REQ-FRONT-1
2026-06-10T07:08:01.4699043Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-10T07:08:01.4699483Z - Required stages: 
2026-06-10T07:08:01.4699516Z 
2026-06-10T07:08:01.4699817Z ### REQ-INSTALL-1
2026-06-10T07:08:01.4700365Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-10T07:08:01.4700690Z - Required stages: doc, impl, int
2026-06-10T07:08:01.4700719Z 
2026-06-10T07:08:01.4701007Z ### REQ-INSTALL-2
2026-06-10T07:08:01.4701410Z - Title: Marketplace-repackaging-friendly install
2026-06-10T07:08:01.4701716Z - Required stages: doc
2026-06-10T07:08:01.4701750Z 
2026-06-10T07:08:01.4702035Z ### REQ-INSTALL-3
2026-06-10T07:08:01.4702450Z - Title: Idempotent + interactive-optional first run
2026-06-10T07:08:01.4702765Z - Required stages: impl, int
2026-06-10T07:08:01.4702798Z 
2026-06-10T07:08:01.4703089Z ### REQ-INSTALL-4
2026-06-10T07:08:01.4704934Z - 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-10T07:08:01.4705268Z - Required stages: impl, unit
2026-06-10T07:08:01.4705300Z 
2026-06-10T07:08:01.4705597Z ### REQ-MIGRATE-1
2026-06-10T07:08:01.4706076Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-10T07:08:01.4706379Z - Required stages: 
2026-06-10T07:08:01.4706412Z 
2026-06-10T07:08:01.4706708Z ### REQ-INFRA-1
2026-06-10T07:08:01.4707318Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-10T07:08:01.4707619Z - Required stages: 
2026-06-10T07:08:01.4707652Z 
2026-06-10T07:08:01.4707947Z ### REQ-INSTALL-5
2026-06-10T07:08:01.4709466Z - 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-10T07:08:01.4709785Z - Required stages: impl, int
2026-06-10T07:08:01.4709819Z 
2026-06-10T07:08:01.4710100Z ### REQ-REL-1
2026-06-10T07:08:01.4711245Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-10T07:08:01.4711572Z - Required stages: doc, impl
2026-06-10T07:08:01.4711600Z 
2026-06-10T07:08:01.4711894Z ### REQ-REL-2
2026-06-10T07:08:01.4713315Z - 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-10T07:08:01.4713616Z - Required stages: impl, int
2026-06-10T07:08:01.4713649Z 
2026-06-10T07:08:01.4713921Z ### REQ-REL-3
2026-06-10T07:08:01.4715194Z - 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-10T07:08:01.4715508Z - Required stages: impl, unit
2026-06-10T07:08:01.4715541Z 
2026-06-10T07:08:01.4715828Z ### REQ-DOCS-1
2026-06-10T07:08:01.4716390Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-10T07:08:01.4716718Z - Required stages: doc, impl
2026-06-10T07:08:01.4716746Z 
2026-06-10T07:08:01.4717040Z ### REQ-DOCS-2
2026-06-10T07:08:01.4717526Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-10T07:08:01.4717832Z - Required stages: doc, int
2026-06-10T07:08:01.4717864Z 
2026-06-10T07:08:01.4718151Z ### REQ-DOCS-3
2026-06-10T07:08:01.4718613Z - Title: Diátaxis structure; one canonical way to do X
2026-06-10T07:08:01.4718918Z - Required stages: doc
2026-06-10T07:08:01.4719043Z 
2026-06-10T07:08:01.4719344Z ### REQ-DOCS-4
2026-06-10T07:08:01.4719902Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-10T07:08:01.4720226Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4720260Z 
2026-06-10T07:08:01.4720546Z ### REQ-DOCS-5
2026-06-10T07:08:01.4721098Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-10T07:08:01.4721418Z - Required stages: impl, int
2026-06-10T07:08:01.4721447Z 
2026-06-10T07:08:01.4721924Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-10T07:08:01.4722463Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-10T07:08:01.4722783Z - Required stages: impl, unit
2026-06-10T07:08:01.4722817Z 
2026-06-10T07:08:01.4723184Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-10T07:08:01.4723613Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-10T07:08:01.4723942Z - Required stages: impl, unit
2026-06-10T07:08:01.4723970Z 
2026-06-10T07:08:01.4724285Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-10T07:08:01.4724672Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-10T07:08:01.4724980Z - Required stages: impl, unit
2026-06-10T07:08:01.4725013Z 
2026-06-10T07:08:01.4725328Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-10T07:08:01.4725909Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-10T07:08:01.4726345Z - Required stages: impl, unit
2026-06-10T07:08:01.4726378Z 
2026-06-10T07:08:01.4726693Z ### REQ-HAZARD-WORKER-PATH
2026-06-10T07:08:01.4727225Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-10T07:08:01.4727542Z - Required stages: impl, unit
2026-06-10T07:08:01.4727575Z 
2026-06-10T07:08:01.4727929Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-10T07:08:01.4728467Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-10T07:08:01.4728758Z - Required stages: 
2026-06-10T07:08:01.4728791Z 
2026-06-10T07:08:01.4729321Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-10T07:08:01.4729774Z - Title: Stdin session_id precedence over env (2.2)
2026-06-10T07:08:01.4730110Z - Required stages: 
2026-06-10T07:08:01.4730135Z 
2026-06-10T07:08:01.4730452Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-10T07:08:01.4730944Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-10T07:08:01.4731268Z - Required stages: impl, unit
2026-06-10T07:08:01.4731301Z 
2026-06-10T07:08:01.4731606Z ### REQ-HAZARD-GEN-START-NOW
2026-06-10T07:08:01.4732026Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-10T07:08:01.4732355Z - Required stages: impl, int
2026-06-10T07:08:01.4732389Z 
2026-06-10T07:08:01.4732720Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-10T07:08:01.4733177Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-10T07:08:01.4733492Z - Required stages: impl, unit
2026-06-10T07:08:01.4733525Z 
2026-06-10T07:08:01.4733858Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-10T07:08:01.4742466Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-10T07:08:01.4742920Z - Required stages: impl, unit
2026-06-10T07:08:01.4742954Z 
2026-06-10T07:08:01.4743285Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-10T07:08:01.4743850Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-10T07:08:01.4744170Z - Required stages: impl, unit
2026-06-10T07:08:01.4744203Z 
2026-06-10T07:08:01.4744548Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-10T07:08:01.4745005Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-10T07:08:01.4745329Z - Required stages: impl, unit
2026-06-10T07:08:01.4745362Z 
2026-06-10T07:08:01.4745715Z ### REQ-HAZARD-ENVELOPE-CR-LINESAFE
2026-06-10T07:08:01.4750761Z - Title: Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\n`→`<br>`) BEFORE framing, so a body carrying `\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).
2026-06-10T07:08:01.4751099Z - Required stages: impl, unit
2026-06-10T07:08:01.4751132Z 
2026-06-10T07:08:01.4751477Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-10T07:08:01.4751969Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-10T07:08:01.4752463Z - Required stages: impl, unit
2026-06-10T07:08:01.4752497Z 
2026-06-10T07:08:01.4752831Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-10T07:08:01.4753446Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-10T07:08:01.4753765Z - Required stages: impl, unit
2026-06-10T07:08:01.4753797Z 
2026-06-10T07:08:01.4754096Z ### REQ-HAZARD-ID-CHARSET
2026-06-10T07:08:01.4754827Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-10T07:08:01.4755137Z - Required stages: impl, unit
2026-06-10T07:08:01.4755175Z 
2026-06-10T07:08:01.4755495Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-10T07:08:01.4756047Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-10T07:08:01.4756357Z - Required stages: impl, unit
2026-06-10T07:08:01.4756391Z 
2026-06-10T07:08:01.4756713Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-10T07:08:01.4757452Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-10T07:08:01.4757777Z - Required stages: impl, unit
2026-06-10T07:08:01.4757810Z 
2026-06-10T07:08:01.4758139Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-10T07:08:01.4759194Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-10T07:08:01.4759537Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4759566Z 
2026-06-10T07:08:01.4760015Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-10T07:08:01.4761325Z - 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-10T07:08:01.4761645Z - Required stages: impl, unit
2026-06-10T07:08:01.4761683Z 
2026-06-10T07:08:01.4762018Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-10T07:08:01.4762399Z - Title: Deferred rows survive poll drain (4.4)
2026-06-10T07:08:01.4762733Z - Required stages: impl, unit
2026-06-10T07:08:01.4762766Z 
2026-06-10T07:08:01.4763120Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-10T07:08:01.4763502Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-10T07:08:01.4763812Z - Required stages: impl, unit
2026-06-10T07:08:01.4763846Z 
2026-06-10T07:08:01.4764179Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-10T07:08:01.4764632Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-10T07:08:01.4764942Z - Required stages: impl, unit
2026-06-10T07:08:01.4764976Z 
2026-06-10T07:08:01.4765333Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-10T07:08:01.4765824Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-10T07:08:01.4766149Z - Required stages: impl, unit
2026-06-10T07:08:01.4766182Z 
2026-06-10T07:08:01.4766507Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-10T07:08:01.4766927Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-10T07:08:01.4767239Z - Required stages: impl, unit
2026-06-10T07:08:01.4767273Z 
2026-06-10T07:08:01.4767593Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-10T07:08:01.4768032Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-10T07:08:01.4768356Z - Required stages: impl, unit
2026-06-10T07:08:01.4768389Z 
2026-06-10T07:08:01.4768713Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-10T07:08:01.4769356Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-10T07:08:01.4769687Z - Required stages: impl, unit
2026-06-10T07:08:01.4769721Z 
2026-06-10T07:08:01.4770036Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-10T07:08:01.4770608Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-10T07:08:01.4770918Z - Required stages: impl, unit
2026-06-10T07:08:01.4770951Z 
2026-06-10T07:08:01.4771280Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-10T07:08:01.4771758Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-10T07:08:01.4772072Z - Required stages: impl, unit
2026-06-10T07:08:01.4772106Z 
2026-06-10T07:08:01.4772447Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-10T07:08:01.4772874Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-10T07:08:01.4773322Z - Required stages: impl, unit
2026-06-10T07:08:01.4773356Z 
2026-06-10T07:08:01.4773700Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-10T07:08:01.4774325Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-10T07:08:01.4774635Z - Required stages: impl, unit
2026-06-10T07:08:01.4774677Z 
2026-06-10T07:08:01.4775018Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-10T07:08:01.4776872Z - 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-10T07:08:01.4777206Z - Required stages: impl, unit
2026-06-10T07:08:01.4777240Z 
2026-06-10T07:08:01.4777583Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-10T07:08:01.4780624Z - 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-10T07:08:01.4780948Z - Required stages: impl, unit
2026-06-10T07:08:01.4780976Z 
2026-06-10T07:08:01.4781286Z ### REQ-HAZARD-CONPTY-DSR
2026-06-10T07:08:01.4782018Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-10T07:08:01.4782332Z - Required stages: impl, unit
2026-06-10T07:08:01.4782361Z 
2026-06-10T07:08:01.4782685Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-10T07:08:01.4783921Z - 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-10T07:08:01.4784235Z - Required stages: impl, unit
2026-06-10T07:08:01.4784269Z 
2026-06-10T07:08:01.4784589Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-10T07:08:01.4786249Z - 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-10T07:08:01.4786588Z - Required stages: impl, unit
2026-06-10T07:08:01.4786621Z 
2026-06-10T07:08:01.4786935Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-10T07:08:01.4789338Z - 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-10T07:08:01.4789657Z - Required stages: impl, unit
2026-06-10T07:08:01.4789696Z 
2026-06-10T07:08:01.4790001Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-10T07:08:01.4790599Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-10T07:08:01.4790897Z - Required stages: impl, unit
2026-06-10T07:08:01.4790946Z 
2026-06-10T07:08:01.4791279Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-10T07:08:01.4792033Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-10T07:08:01.4792357Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4792391Z 
2026-06-10T07:08:01.4792714Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-10T07:08:01.4793481Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-10T07:08:01.4793793Z - Required stages: impl, unit
2026-06-10T07:08:01.4793827Z 
2026-06-10T07:08:01.4794166Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-10T07:08:01.4795435Z - 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-10T07:08:01.4795779Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4795817Z 
2026-06-10T07:08:01.4796172Z ### REQ-HAZARD-BROKER-PROCESS-ISOLATION
2026-06-10T07:08:01.4803157Z - Title: Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).
2026-06-10T07:08:01.4803594Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4803623Z 
2026-06-10T07:08:01.4803975Z ### REQ-HAZARD-ROLLBACK-STATE-COMPAT
2026-06-10T07:08:01.4808690Z - Title: A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.
2026-06-10T07:08:01.4809095Z - Required stages: doc
2026-06-10T07:08:01.4809128Z 
2026-06-10T07:08:01.4809470Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-10T07:08:01.4811587Z - 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-10T07:08:01.4811905Z - Required stages: impl, unit
2026-06-10T07:08:01.4811961Z 
2026-06-10T07:08:01.4812304Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-10T07:08:01.4814250Z - 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-10T07:08:01.4814649Z - Required stages: impl, unit
2026-06-10T07:08:01.4814692Z 
2026-06-10T07:08:01.4815029Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-10T07:08:01.4816836Z - 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-10T07:08:01.4817158Z - Required stages: impl, unit
2026-06-10T07:08:01.4817187Z 
2026-06-10T07:08:01.4817514Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-10T07:08:01.4819221Z - 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-10T07:08:01.4819555Z - Required stages: impl, unit
2026-06-10T07:08:01.4819588Z 
2026-06-10T07:08:01.4819907Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-10T07:08:01.4822270Z - 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-10T07:08:01.4822592Z - Required stages: impl, unit
2026-06-10T07:08:01.4822621Z 
2026-06-10T07:08:01.4822945Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-10T07:08:01.4825114Z - 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-10T07:08:01.4825599Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4825632Z 
2026-06-10T07:08:01.4825923Z ### REQ-CONSENT-1
2026-06-10T07:08:01.4828670Z - 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-10T07:08:01.4829048Z - Required stages: impl, unit
2026-06-10T07:08:01.4829072Z 
2026-06-10T07:08:01.4829372Z ### REQ-CONSENT-2
2026-06-10T07:08:01.4831878Z - 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-10T07:08:01.4832217Z - Required stages: impl, unit
2026-06-10T07:08:01.4832247Z 
2026-06-10T07:08:01.4832551Z ### REQ-PRES-1
2026-06-10T07:08:01.4836296Z - 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-10T07:08:01.4836625Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4836663Z 
2026-06-10T07:08:01.4836949Z ### REQ-SHELL-1
2026-06-10T07:08:01.4839660Z - 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-10T07:08:01.4840012Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4840046Z 
2026-06-10T07:08:01.4840337Z ### REQ-SHELL-2
2026-06-10T07:08:01.4844375Z - 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-10T07:08:01.4844700Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4844734Z 
2026-06-10T07:08:01.4845077Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-10T07:08:01.4848569Z - 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-10T07:08:01.4848925Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4849042Z 
2026-06-10T07:08:01.4849399Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-10T07:08:01.4852974Z - 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-10T07:08:01.4853298Z - Required stages: doc, impl, unit
2026-06-10T07:08:01.4853457Z 
2026-06-10T07:08:01.4853753Z ### REQ-CLI-1
2026-06-10T07:08:01.4856970Z - 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-10T07:08:01.4857284Z - Required stages: impl, unit
2026-06-10T07:08:01.4857317Z 
2026-06-10T07:08:01.4857604Z ### REQ-CLI-2
2026-06-10T07:08:01.4859817Z - 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-10T07:08:01.4860132Z - Required stages: impl, unit
2026-06-10T07:08:01.4860175Z 
2026-06-10T07:08:01.4860489Z ### REQ-CLI-3
2026-06-10T07:08:01.4862648Z - 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-10T07:08:01.4862963Z - Required stages: impl, unit
2026-06-10T07:08:01.4862997Z 
2026-06-10T07:08:01.4863382Z ### REQ-SUBNET-5
2026-06-10T07:08:01.4866392Z - 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-10T07:08:01.4866755Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4866789Z 
2026-06-10T07:08:01.4867080Z ### REQ-SUBNET-6
2026-06-10T07:08:01.4869197Z - 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-10T07:08:01.4869535Z - Required stages: impl, unit
2026-06-10T07:08:01.4869574Z 
2026-06-10T07:08:01.4869864Z ### REQ-SUBNET-7
2026-06-10T07:08:01.4874319Z - 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-10T07:08:01.4874643Z - Required stages: impl, unit
2026-06-10T07:08:01.4874681Z 
2026-06-10T07:08:01.4874962Z ### REQ-SUBNET-8
2026-06-10T07:08:01.4878342Z - 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-10T07:08:01.4878676Z - Required stages: impl, unit
2026-06-10T07:08:01.4878714Z 
2026-06-10T07:08:01.4879086Z ### REQ-INSTALL-6
2026-06-10T07:08:01.4882339Z - 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-10T07:08:01.4882803Z - Required stages: impl, unit
2026-06-10T07:08:01.4882836Z 
2026-06-10T07:08:01.4883127Z ### REQ-INSTALL-7
2026-06-10T07:08:01.4886182Z - 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-10T07:08:01.4886487Z - Required stages: impl
2026-06-10T07:08:01.4886520Z 
2026-06-10T07:08:01.4886811Z ### REQ-INSTALL-8
2026-06-10T07:08:01.4890027Z - 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-10T07:08:01.4890356Z - Required stages: impl
2026-06-10T07:08:01.4890389Z 
2026-06-10T07:08:01.4890680Z ### REQ-CONV-1
2026-06-10T07:08:01.4894576Z - 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-10T07:08:01.4894895Z - Required stages: impl, unit
2026-06-10T07:08:01.4894924Z 
2026-06-10T07:08:01.4895220Z ### REQ-CONV-2
2026-06-10T07:08:01.4898155Z - 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-10T07:08:01.4898493Z - Required stages: impl, unit
2026-06-10T07:08:01.4898527Z 
2026-06-10T07:08:01.4898808Z ### REQ-PAIR-8
2026-06-10T07:08:01.4902314Z - 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-10T07:08:01.4902649Z - Required stages: impl, unit
2026-06-10T07:08:01.4902687Z 
2026-06-10T07:08:01.4902974Z ### REQ-DAEMON-5
2026-06-10T07:08:01.4906652Z - 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-10T07:08:01.4907007Z - Required stages: impl, unit
2026-06-10T07:08:01.4907040Z 
2026-06-10T07:08:01.4907331Z ### REQ-DAEMON-6
2026-06-10T07:08:01.4912651Z - 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-10T07:08:01.4913103Z - Required stages: impl, unit
2026-06-10T07:08:01.4913136Z 
2026-06-10T07:08:01.4913423Z ### REQ-DAEMON-7
2026-06-10T07:08:01.4917235Z - 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-10T07:08:01.4917562Z - Required stages: impl, unit
2026-06-10T07:08:01.4917596Z 
2026-06-10T07:08:01.4917891Z ### REQ-DAEMON-8
2026-06-10T07:08:01.4920654Z - 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-10T07:08:01.4920978Z - Required stages: impl, unit
2026-06-10T07:08:01.4921012Z 
2026-06-10T07:08:01.4921411Z ### REQ-DAEMON-9
2026-06-10T07:08:01.4927749Z - Title: Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.
2026-06-10T07:08:01.4928099Z - Required stages: impl, unit
2026-06-10T07:08:01.4928132Z 
2026-06-10T07:08:01.4928446Z ### REQ-HAZARD-EPOCH-RESET
2026-06-10T07:08:01.4932163Z - 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-10T07:08:01.4932459Z - Required stages: 
2026-06-10T07:08:01.4932483Z 
2026-06-10T07:08:01.4932769Z ### REQ-MESH-1
2026-06-10T07:08:01.4938523Z - 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-10T07:08:01.4938854Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4938888Z 
2026-06-10T07:08:01.4939245Z ### REQ-MESH-2
2026-06-10T07:08:01.4946482Z - 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-10T07:08:01.4946991Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4947029Z 
2026-06-10T07:08:01.4947324Z ### REQ-MESH-3
2026-06-10T07:08:01.4951916Z - 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-10T07:08:01.4952387Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4952420Z 
2026-06-10T07:08:01.4952716Z ### REQ-MESH-4
2026-06-10T07:08:01.4958776Z - 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-10T07:08:01.4959210Z - Required stages: impl, unit, int
2026-06-10T07:08:01.4959243Z 
2026-06-10T07:08:01.4959528Z ### REQ-MESH-5
2026-06-10T07:08:01.4963351Z - 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-10T07:08:01.4963675Z - Required stages: impl, unit
2026-06-10T07:08:01.4963728Z 
2026-06-10T07:08:01.4964024Z ### REQ-MESH-6
2026-06-10T07:08:01.4967350Z - 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-10T07:08:01.4967665Z - Required stages: impl, unit
2026-06-10T07:08:01.4967698Z 
2026-06-10T07:08:01.4967987Z ## How to report back
2026-06-10T07:08:01.4968021Z 
2026-06-10T07:08:01.4968520Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-10T07:08:01.4968550Z 
2026-06-10T07:08:01.4968826Z     {
2026-06-10T07:08:01.4969218Z       "code": "requirement_quality",
2026-06-10T07:08:01.4969538Z       "requirementId": "REQ-...",
2026-06-10T07:08:01.4970032Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-10T07:08:01.4970477Z       "message": "<short reason>",
2026-06-10T07:08:01.4970835Z       "suggestedRevision": "<optional rewrite>"
2026-06-10T07:08:01.4971116Z     }
2026-06-10T07:08:01.4971151Z 
2026-06-10T07:08:01.4971697Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-10T07:08:01.4972133Z deterministic findings above don't need to be repeated.
2026-06-10T07:08:01.5116882Z Post job cleanup.
2026-06-10T07:08:01.5799098Z [command]/usr/bin/git version
2026-06-10T07:08:01.5863949Z git version 2.43.0
2026-06-10T07:08:01.5894999Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/0ddf16bd-9207-4d96-9147-d0c54a375afd' before making global git config changes
2026-06-10T07:08:01.5895662Z Adding repository directory to the temporary git global config as a safe directory
2026-06-10T07:08:01.5898240Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-10T07:08:01.5926655Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-10T07:08:01.5954613Z [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-10T07:08:01.6133736Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-10T07:08:01.6153401Z http.https://github.com/.extraheader
2026-06-10T07:08:01.6160756Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-10T07:08:01.6188220Z [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-10T07:08:01.6368257Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-10T07:08:01.6393073Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-10T07:08:01.6705412Z Cleaning up orphan processes
